You are on page 1of 110

5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.

com

Developing FPM Applications


PDF download from SAP Help Portal:
http://help.sap.com/saphelp_nw74/helpdata/en/ee/b36db238eb4fbc96c0638d9f903212/content.htm

Created on March 04, 2015

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.
The selected structure has more than 150 subtopics. This download contains only the first 150 subtopics. You can manually download the missing subtopics.

© 2015 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.

PUBLIC Page 1 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Table of content
1 Developing FPM Applications
1.1 FPM Developer Tools
1.1.1 FPM Workbench: Useful Tools in One Place
1.1.2 Creating FPM Applications with the ACT
1.1.2.1 Using Application Parameters
1.1.2.2 Creating FPM Applications based on SADL Entities using the ACT
1.1.3 Application Hierarchy Browser for Floorplan Manager 
1.1.4 Flexible User Interface Designer (FLUID)
1.1.4.1 Personalizing FLUID (Application-Specific)
1.1.4.2 Viewing Freestyle UIBBs in FLUID
1.1.4.3 Editing Applications with FLUID - Examples
1.1.4.3.1 Editing the Floorplan Component of an Application
1.1.4.3.2 Changing the Title of a Roadmap Step in an Application
1.1.4.3.3 Adding a New Button to the Toolbar in an Application
1.1.4.3.4 Editing UIBB Components in an Application
1.1.4.3.5 Adding an Existing UIBB to an Application
1.1.4.3.6 Adding a List Component to an Application
1.1.4.3.7 Adding a Tabbed Component to an Application

1.1.4.3.8 Editing a Form Component inside an Application


1.1.4.3.9 Moving Between UIBB and Floorplan Components
1.1.4.4 Formatting Individual UI Elements (Styling)
1.1.5 Analyzing Applications with the Runtime Analysis Tool (RAT)
1.1.5.1 Accessing the Runtime Analysis Tool (RAT)
1.1.6 Comparing Configurations
1.2 Working with GUIBBs
1.2.1 GUIBBs in Detail
1.2.1.1 Analytics Component
1.2.1.1.1 Architecture
1.2.1.1.2 Planning Queries
1.2.1.1.3 Defined Events
1.2.1.1.4 Generic BICS Search Feeder Class
1.2.1.1.5 Generic BICS Chart Feeder Class
1.2.1.1.6 Generic Analytics Application
1.2.1.2 Attribute Filter Component
1.2.1.2.1 Interface: IF_FPM_GUIBB_ATTRIBUTE_FILTER
1.2.1.3 Carousel Component
1.2.1.4 Chart Component
1.2.1.4.1 FPM Chart UIBB: A Data-Model Driven Approach
1.2.1.4.2 Chart Types: Minimum Requirements
1.2.1.4.3 Interfaces for the Chart UIBB
1.2.1.5 Composite Component
1.2.1.5.1 Changing the Composite UIBB dynamically at Runtime
1.2.1.6 Form Component
1.2.1.6.1 Using the CHECKBOX_GROUP Display Type in a Form
1.2.1.6.2 Interface: IF_FPM_GUIBB_FORM
1.2.1.7 Form GL2 Component
1.2.1.8 Form Repeater Component
1.2.1.8.1 Paging Mechanism for Fast Data Retrieval
1.2.1.8.2 Interface: IF_FPM_GUIBB_FORM_REPEATER
1.2.1.9 Hierarchical List (Tree) Component
1.2.1.9.1 FPM Events and the Hierarchical List Component
1.2.1.9.2 Interface: IF_FPM_GUIBB_TREE
1.2.1.9.3 Enabling the Search Feature in the Tree Component
1.2.1.9.4 Enabling the Filter Feature in the Tree Component
1.2.1.10 Launchpad Component
1.2.1.10.1 Adding a Launchpad to a Toolbar Element
1.2.1.10.2 Editing a Launchpad
1.2.1.10.3 Interface: IF_FPM_GUIBB_LAUNCHPAD
1.2.1.11 List Component
1.2.1.11.1 Attributes of the List Component

PUBLIC Page 2 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

1.2.1.11.2 FPM Events and the List Component


1.2.1.11.3 Interface: IF_FPM_GUIBB_LIST
1.2.1.11.4 Rendering List Component Data using SAP List Viewer (ALV)
1.2.1.12 List ATS Component
1.2.1.12.1 Data Exchange in the List ATS Component
1.2.1.12.2 Actions in the List ATS
1.2.1.12.3 List Operations (Filtering, Sorting, Grouping, Aggregation)
1.2.1.12.4 F4/Input Help
1.2.1.12.5 Drag-and-Drop of Rows at Runtime
1.2.1.12.6 Influencing the Row Order at Runtime
1.2.1.12.7 Reading the Row Order displayed at Runtime
1.2.1.12.8 Defining the Insert Position of New Rows
1.2.1.12.9 Clearing Sorting and Grouping Rules from Personalization
1.2.1.12.10 Sorting and Filtering of Images in a List
1.2.1.12.11 Multi-Value Paste
1.2.1.12.12 Mass Edit
1.2.1.12.13 Row-Specific Property Values for Display Types
1.2.1.12.14 Edit Scenarios for List ATS UIBB: Guidelines
1.2.1.12.14.1 Change Log
1.2.1.12.14.2 Application Scenarios

1.2.1.12.14.2.1 Extension of Feeder Interface


1.2.1.12.14.2.2 Unique Key Mode
1.2.1.12.14.2.3 Stable Line Order Mode
1.2.1.12.14.2.4 Own Delta Handling
1.2.1.12.14.2.5 No Delta Handling
1.2.1.13 List ATS Component with Integrated Data Access (IDA)
1.2.1.13.1 Features Common to Both List ATS and List ATS with IDA Components
1.2.1.13.2 Displaying Data from a Database Table or View
1.2.1.13.3 Restricting Data using Selection Criteria
1.2.1.13.4 Using SAP HANA CalcViews with Placeholder Variables
1.2.1.13.5 Row Selection
1.2.1.13.6 (Fuzzy) Text Search
1.2.1.13.7 Complex Conditions
1.2.1.13.8 Authorizations
1.2.1.13.9 Definition of Data Elements for Fields of an External View
1.2.1.13.10 Retrieving Entire Dataset of a Row (Link Display Types)
1.2.1.13.11 Detection of Database Capabilities
1.2.1.13.12 Sorting according to Log-on Language (Sort Locale)
1.2.1.13.13 Suppressing Data Selection for a Search Results List
1.2.1.13.14 Sorting by External Value
1.2.1.13.15 Interface: IF_FPM_GUIBB_LIST_IDA
1.2.1.14 Personal Object Worklist (POWL) Component
1.2.1.14.1 Configuring a POWL Component in FPM
1.2.1.14.2 The POWL Component at Runtime
1.2.1.15 Search Component

1.2.1.15.1 Enter, Reset, and Clear Buttons


1.2.1.15.2 Defining a Results List for the Search Component
1.2.1.15.3 Refining the Search Results List using Exclude Criteria
1.2.1.15.4 Dependent Searches
1.2.1.15.5 Grouping Search Criteria
1.2.1.15.6 Using Multi-Value Fields
1.2.1.15.7 Search Attributes with Conversion Exits or Range Conversion
1.2.1.15.7.1 Conversion Exits
1.2.1.15.7.2 Range Conversion
1.2.1.15.8 Converting FPM Attributes to ABAP Options (and Vice-Versa)
1.2.1.15.9 Simple Search
1.2.1.15.10 Interface: IF_FPM_GUIBB_SEARCH
1.2.1.16 Tabbed Component
1.2.1.16.1 Changing the Tabbed Component Dynamically at Runtime
1.2.1.16.1.1 Hiding Master or Detail UIBBs at Runtime
1.2.1.16.1.2 Changing the Details Title Area at Runtime
1.2.1.17 Visual Business Component

PUBLIC Page 3 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

1.2.1.17.1 Creating a VisBiz Configuration Dynamically


1.2.1.17.2 Interface: IF_FPM_GUIBB_VISBIZ
1.2.2 Value/Input Helps for Generic UIBBs (GUIBBs)
1.2.2.1 Assignments in the Field Description
1.2.3 Dynamic GUIBB Configurations at Runtime
1.2.3.1 UIBB Invalidation and Re-instantiation
1.2.3.2 Dynamic GUIBB/Quickview Configuration Exchange
1.2.4 Context Menus and Action Menus in GUIBBs
1.2.4.1 Creating a Context Menu Dynamically
1.2.4.2 Creating a Context Menu in FLUID
1.2.4.3 Action Menus in GUIBBs
1.2.4.4 Displaying a Context Menu as an Action Menu
1.2.5 Quickviews
1.2.5.1 Creating and Assigning a Quickview
1.2.5.2 Assigning Image Quickviews: Fast-Track Method
1.2.5.3 Dynamic Calling of Quickviews
1.2.5.4 Interface: IF_FPM_GUIBB_QV_DATASET
1.2.5.5 Interface: IF_FPM_GUIBB_QV_THING
1.2.6 Moving Data between UIBBs at Runtime (Drag-and-Drop)
1.2.6.1 Enabling Drag-and-Drop in GUIBBs

1.2.6.2 Processing Events in a Drag-and-Drop Operation


1.2.6.3 Defining Drag-and-Drop Attributes in GET_DEFINITION
1.2.6.4 Body-Specific Dropping
1.2.6.5 Row-Specific Dropping
1.2.6.6 Multiple Drag Sources and Drop Targets
1.2.6.7 Modifying Drag Sources & Drop Targets at Runtime
1.2.6.8 Drag-and-Drop in Freestyle UIBBs
1.3 Working with Floorplans

PUBLIC Page 4 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

  1 Developing FPM Applications


This section comprises the main part of the document.
SAP-delivered applications are created in the Web Dynpro ABAP configuration layer by developers working in Expert (Developer) mode.
Changes made to the configurations in Expert mode are stored directly in the Web Dynpro ABAP configuration layer.
Changes made in Expert mode are modifications that are overwritten when a new release or enhancement package is imported.

Accessing the Configuration Layer 


You access this layer by working in Expert (Developer) mode. For this, your user must have the S_DEVELOP authorization profile assi gned. With this authorization
profile for ABAP Workbench, you can make any and all changes to a user interface developed with Web Dynpro ABAP/FPM.

Opening an Application in the Configuration Layer 


Choose one of the following options to open an ap pli cation in the configuration lay er:
Locate the application configuration in transaction SE80 under Web Dynpro FPM App lication Configurations , and choose Test from the context
menu.
 Add the URL parameter sap-config-mode=config to the URL of the running application.

Note
For applications running in SAP Enterprise Portal or SAP NetWeaver Business Client (NWBC) environments, it is sometimes not possible to add a URL
parameter. In these environments, you can add the system parameter FPM_CONFIG_EXPERT in System User Profile Own Data Parameters
in the system. Set the value of the parameter to X.

 An FPM app lication running in the configuration layer displays the following buttons on the main toolbar:
Configure Page and Show Configurabl e Areas
Provide access to FLUID in Expert mode for the various components of the application
 App lication Hierarchy
Provides access to the FPM Application Hierarchy Browser 

Working in the Configuration Layer 


Working in this layer, developers can carry out the following activities:
 Adapt components for the whole system
Define which settings can be overwritten in the customizing or personalization layers
Ensure that the correct component configurations are available to users

Related Information
FPM Developer Tools
Working with GUIBBs
Working with Floorplans
Working with FPM Framework Features

  1.1 FPM Developer Tools


 A description of the developer tools available in the Floorplan Manager framework.

Related Information
FPM Workbench: Useful Tools in One Place
Creating FPM Applications with the ACT
 App lication Hierarchy Browser for Floorplan Manager 
Flexible User Interface Designer (FLUID)
 Analyzing Applications with the Runtime Analysis Tool (RAT)
Comparing Configurations

  1.1.1 FPM Workbench: Useful Tools in One Place

Use
The Floorplan Manager Workbench provides you with a set of tools that you commonly need when working with FPM applications. It brings these tools together on
one web page so you don't have to spend time searching for them in the FPM framework.
Links to the various tools are arranged in different sections, such as those below:

Configuration Tools
Includes the FPM configuration editor, FLUID, and the FPM Hierarchy Browswer 
Wizards for Creating Applications
Includes various FPM wizards, starting with the simple wizard for creating empty applications up to full-blown, transactional applications based on
Business Entities
Demo and Test Applications

PUBLIC Page 5 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

 
Includes a link to the FPM Test Suite where you find numerous FPM demo and test applications detailing important FPM features
Web Dynpro Tools
Includes links to tools such as the WD Trace Tool and the UI Theme Designer 
Context-Based Adaptations
Maintenance tools for context-based adaptations (CBA)

Starting the FPM Workbench


You can start the FPM Workbench using any of the following methods:
Transaction code FPM_WB
Web Dynpro ABAP application (configuration) FPM_WB
Web Dynp ro ABAP CHIP FPM_WB

Note
This CHIP, containing the FPM Workbench, can be found in Web Dynpro ABAP's Page Builder CHIP Catalog. You can configure the CHIP, for 
example, on your home/landing page. For more information, search for Page Builder   in the SAP NetWeaver Library.

  1.1.2 Creating FPM Applications with the ACT

Use

The FPM Application Creation Tool (ACT) significantly reduces the effort involved in creating a new FPM application.
The tool itself is a Web Dynpro ABAP application, provided by FPM, which allows application developers to create FPM applications and their corresponding
configurations for all available floorplans (OVP, GAF, and OIF).
The ACT also allows you to create applications for adaptable FPM components, that is, it allows you to create context-based adaptations (CBA) for your 
application.

Starting the ACT


Choose one of the following options to start the ACT:
You can access the ACT from the FPM Workbench:
1. Enter the transaction FPM_WB on the SAP Easy Access screen.
The FPM Workbench is opened.
2. Under the heading Wizards for Creating App lications , choose Wizard for Creating Empty FPM Appl ications .
The ACT is opened. You can now start to create your application.
Double-click the FPM_CFG_BO_MODEL_ACT application in transaction SE80 (in the APB_FPM_CONF package, choose Web Dynpro FPM
 App lications ).

Creating an Application with the ACT


1. Step 1: Enter Floorplan Objects
To do this, complete the following steps:
1. Under Web Dynp ro App lication , enter a name and, optionally, a descrip tion for your appl ication. Naturally, you can enter the name of an existing
WD app lication.
2. Choose a floorplan from the Select Floorplan dropdown list.
3. Enter a namespace using the Namespace button.
The namespace is transferred to the configuration names of the various components of your application.
4. Choose the Next button.
2. Step 2: Ass ign Package and Transport Request
Enter the package and transport details and choose Save on the main toolbar.
The ACT creates the new FPM application and component configurations, and displays the following links in the browser:
Edit Configuration (FLUID)
Choose this link to edit the component or application configurations using FLUID. There, you can enter the content (UIBBs) for your application and edit
the layout of your application.
Execute App lication
Choose this link to execute the newly created FPM application.
3. Choose one of the links to continue.

Note
The ACT creates only the components and layout of an application; it does not create the code for the application.
If you created your application without choosing an existing WD component, your application appears empty at runtime (except for the icons on the FPM
toolbar). You should choose the Edit Configuration link to add content and refine your appl ication.

Related Information
Using Application Parameters
Creating FPM Applications based on SADL Entities using the ACT

  1.1.2.1 Using Application Parameters

PUBLIC Page 6 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

 App lication parameters are defined at Web Dy npro application level.


 After creating your FPM application, you can add parameters to the individual component configurations. To do this, complete the following steps:
1. In transaction SE80, double-click y our Web D ynpro applic ation.
2. Choose Parameters .
You can add arbitrary parameters as application-specific attributes to your Web Dynpro application. During runtime, these parameters are exposed by
IF_FPM->MO_APP_PARAMETER . MO_APP_PARAMETER  stores an instance of IF_FPM_PARAMETER . You can retrieve the parameters with this
interface.
Note that there is no concept of mandatory or optional parameters. For security reasons, you must never trust parameters passed by a different application.
 Always complete a proper validation before you use application parameters.
There are other FPM-specific parameters which you can add to your application; the following two may be of particular interest:

Parameter Parameter Description

FPM_SHOW_MESSAGE_LOG You can tur n on a l og history of the m essages for a particular application. When the
message log is turn ed on, all the previously reported messages are displayed.

FPM_MAXIMUM_MESSAGE_SIZE When a m essage is created in the application, the m essage area displays as many
messages as possible. As soon as the visible number of messages in the message area
exceeds the configured message size, a scroll bar wil l appear in the m essage area,
allowing the user to read all messages. The maximum size of the message is set at
configuration.

There are also predefined Web Dynpro parameters which can be chosen using the value help.

  1.1.2.2 Creating FPM Applications based on SADL Entities using


the ACT
Use
The Floorplan Manager (FPM) framework contains a number of application wizards to create various types of FPM applications. There is a wizard for creating
FPM applications based on Service Adaptation Definition Language (SADL) entities.

Note
SADL is a framework which enables consumption of different business object models, and other entity-based models, in particular DDIC tables and views, in
a uniform way. Knowledge of the details of the modeling frameworks, such as Business Object Process Framework (BOPF) or (Business Object Layer ) BOL
is not required; the SADL entity model exposes all the required information to the UI.

With SADL, it is possible to push down queries directly to the database itself, thereby improving response cycle times, and, with suitable databases, very large
amounts of data (millions of records) can be retrieved and displayed tremendously quickly.
This wizard creates a simple application consisting of a search page, that is, a page containing a section for the search criteria and a section for the search
results.

Procedure
You can acces s the wizard for creating FPM applications bas ed on SADL entities through the FPM Workbench .
To open the FPM Workbench , enter the transaction FPM_WB in the SAP Easy Acc ess - User Menu screen. Under the section listing the wizard applications,
choose Wizard for Creating FPM App lications Based on SADL Entities . The wizard is opened in a new browser window, and displ ays an app lication with a
series of roadmap steps.

Note
Detailed instructions for this application are available through Quick Help in the system. To access Quick Help , place y our cursor anywhere within the
applic ation screen and select Display Q uick Help from the context menu.

Follow the instructions for each step in the roadmap as listed below:
1. Step 1: Enter Floorplan Objects
1. Enter the following information:
Web Dynp ro Application : Enter a name for your app lication.
Description (O ptional)
 Adaptation Op tions : (Optional) You can enable your application for context-based adaptations.
2. Choose App ly Namespace to add the relevant namespace.
3. Choose Next to set the SADL entity.
2. Step 2: Set SADL Entity
1. Enter the following information:
Entity Type : Choose the mapp ed framework, suc h as Business O bjec t Process Framework (BOPF). There are also other entity types s uch
as DDIC tables and views.
Entity: Choose the busines s object node which underlies the query of your search page. This is referred to as your 'main' entity in this
document.

Note
The authorization checks implemented in the application you create with this wizard are dependent on the type of SADL entity type you
choose:
When you create applications based on DDIC tables or views, the table data is protected using the authorization objects S_TABUDIS
and S_TABUNAM as in the SE16 transaction. Your application checks whether the end-user has display authorization for the entire

PUBLIC Page 7 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

table. However, there is currently no further check on whether the end-user has authorization for individual rows in the table (like the
WD ABAP authority-check ).
Other entity types may come with their own authorization concepts.

2. Choose Next to define the UI structure.


3. Step 3: Join Associated Entities (View Building)
This step disp lays the information contained in the main SAD L entity that you selected in Step 2 . It display s the relationship s of the main SADL entity (for 
example, associations of the BOPF node), and the entities that can be reached by following the associations. You have the possibility to display fields from
these related entities in addition to those of the main entity.
1. (Op tional) Select the checkb oxes in the Join column to join your main entity with other entities, so that you can avail of the fields of those entities for 
the UI.
If you do not make any joins, the UI displays only the fields of your main entity.
2. (Op tional) To avoid possib le field name collisions, you can enter a suffix for a field name in the Name Suffix column.
3. Choose Next to define the UI structure. assign a package and transport request.
4. Step 4: Define UI Structure
Here you enter the details of the Search component configuration that you will use, and also the List ATS with IDA configuration that will display the search
results.
Op tionally, you can add charts to disp lay your data graphicall y. Choose the Add Chart button on the toolbar and enter the configuration details. You must
define a chart with a Dimens ion (which field in your configuration provides the focus of the chart) and a Measure (which field contains the numerical data
to be displayed).
5. Step 5: Ass ign Package and Transport Request
Enter a package and transport request and choose Save .
The wizard confirms you have created a new application based on your chosen SADL entity, and that all necessary applications and configurations have
been created.

Result
You can now edit your application with FPM's configuration editor, FLUID, or you can exec ute the appli cation and use the Personalization button to choose which
columns to display on the UI.

More Information
For more information on the Business Objec t Process Framework (BOPF), see documentation under the SAP Bus iness Sui te section in the SAP Lib rary (
http://help.sap.com ).
Context-Based Adaptations
For more information on developing applications with FPM, see the Floorplan Manager for Web Dynp ro ABAP - Developer's G uide on the SAP
Community Network (SCN) at http://scn.sap.com .

  1.1.3 Application Hierarchy Browser for Floorplan Manager 

Use
You can use this function to disp lay ( Browser Mode ) and copy ( Deep-Copy Mode ) the structure of an FPM app lication with all of its component configurations.
For example, a copy of the component configurations of an FPM application is useful when you want to make an FPM application available for multiple roles but
want the user interfaces to be different depending on these roles and to map these differences using separate component configurations or application
configurations. This may include, for example, specialization of an FPM application for the manager and administrator roles or specialization of an FPM application
for the American and German markets.

Features
The browser for the FPM application hierarchy has a display function (browser mode) and a copy function (deep copy mode):
Browser mode
In browser mode, the entire structure of an FPM application is shown with all its components as a hierarchy.
For every component, the component configuration ID (displayed as a hyperlink) is given along with the technical name of the component and the
component view. You can choose the hyperl ink in the Configuration ID column to move direc tly to the configuration editor of the relevant component
configuration.
In browser mode, the system dis play s the structure of an application on a tab page entitled App lication Hierarchy: Configuration Level . The following tab
pages may also be present:
 App lication Hierarchy: Customizing Level
If a customizing exists for the application, the system additionally displays a separate tab page detailing all the customized components of the
app lication in a hierarchy. The system also disp lays the Customizing icon, in the Configuration ID column, next to each cus tomized component to
remind you that you are working on the Customizing level when you choose the Configuration ID hyperlink.
This tab page is only displayed if a customizing exists.
 App lication Hierarchy: Context-Based Adaptation Level
If the application is an adaptable application, the system additionally displays a separate tab page detailing all the components of the adaptable
application in a hierarchy. The dimensions of the adaptable application are automatically generated by the system and displayed on the toolbar of this
tab page. Choosing a value for a dimension results in new component configurations being displayed in the hierarchy.
This tab p age is only displayed if the applic ation is an adaptable ap plication.
Deep-Copy Mode
To acces s the Deep-Copy function, choose the App lication Hierarchy: Configuration Level tab page and choose the Start Deep-Copy button on the page
toolbar.
In Deep-Copy mode, the entire structure of an FPM application is shown with all its components as a hierarchy. As opposed to browser mode, however, two
fields are disp layed in addition to the technical name, c omponent view, and component configuration ID: The Copy check box and the Target Configuration
ID input field.

PUBLIC Page 8 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Copy checkbox
The Copy check box determines whether the component configuration is copied. When you open deep copy mode, all components are selected for 
the copy. You have the option of excluding individual components from the copy function. You cannot exclude the Web Dynpro application
configuration or the Web Dynpro component configuration you used to launch the FPM application hierarchy browser from the copy.
Target Configuration ID input field
The Target Configuration ID input field contains a generated technic al name for the configuration to be created. The system suggests the technical
name of the source configuration and adds the suffix CP (for "copy") to the end.
You can change this name if necessary. You can do this in two ways: Overwrite the default name directly in the input field or overwrite the default
value using the Change Affix function. With this function, you can change determine a prefix or suffix for the default value. This affix then appears i n
all names suggested by the system.
When making the copy, the system also generates the references to the source configuration and source components for the newly created configurations.
This saves you the time-consuming effort of copying the individual component configurations and re-creating the references of these configurations.

Note
Only the standard configuration is used when copying a configuration. If adjustments have been made in the Customizing layer (administrator mode) or 
an enhancement of a configuration, they are not included in the copy. If the configuration has already been Customized or enhanced, this is displayed by
the additional Customizing and Enhancement fields.

Note
One FPM application can only be copied once for each time it is called in the runtime environment. If you want to make multiple copies of an FPM
application, you must call the application multiple times in the runtime environment.

You can start the FPM application hierarchy browser in two ways:
From the runtime environment of an FPM application
If you call the FPM application hierarchy browser from an FPM application, the system transfers the FPM application configuration to the FPM application
hierarchy browser and skips the initial screen of the Web Dynpro application. The system will take you directly to browser mode.
From the Web Dynpro Explorer by calling the Web Dynpro app lication FPM App lication Hierarchy Browser (technical name:
FPM_CFG_HIERARCHY_BROWSER).
If you call the FPM application hierarchy browser using the Web Dynpro Explorer, you are taken to the initial screen, where you must first select an FPM
application configuration or component configuration. The system then launches browser mode with this configuration.

Note
This way is useful if you know the technical name of the desired application configuration or if you only want to process a component configuration.

Note
The link to the application hierarchy browser is only visible in the runtime environment of the FPM application when the user parameter 
FPM_CONFIG_EXPERT= "X" or FPM_CONFIG_EXPERT= "A" is entered for your user. For the copy function, you need S_DEVELOP authorization in the SAP
system.

Activities
Launching the Application Hierarchy Browser from an FPM Application

1. In the FPM app lication, choose the App lication Hierarchy icon on the toolbar.
The system opens the FPM application hierarchy browser in browser mode.
Launching the Application Hierarchy Browser from the FPM Application Hierarchy Browser Web Dynpro Application

1. In the Ob ject Navigator (transac tion SE80), choose the package APB_FPM_ CONF .
2. Choose Web Dynpro Web Dynpro App lications .
3. Double-click the FPM_CFG_ HIERARCHY_BROWSER Web Dynpro applic ation.
The Web Dynpro Explorer: Disp lay Web Dynpro Application screen opens.
4. In the menu, choose Web Dynpro App lication Test In Browser - Admin Mode .
The sys tem opens the Floorplan Manager: Appli cation Hierarchy Browser browser window.
5. Enter an appli cation component or component configuration.
6. Choose Continue .
The system displays the selected application or component.
Copying Applications using the Deep-Copy Function

1. Choose the tab page entitled App lication Hierarchy: Configuration Level .
2. Choose Deep Copy Mode on the page toolbar.
3. If you want to excl ude components from the copy, remove the selection in the Copy check box.
4. To copy the configurations, choose Start Deep Copy on the tab page toolbar.
The system then creates the relevant copies of the configurations.

  1.1.4 Flexible User Interface Designer (FLUID)

Use
The flexible user interface designer (FLUID) is the browser-based editor for FPM application configurations, and their individual components. It replaces all
previous FPM configuration editors.
You use FLUID to edit and enhance FPM applications, and their user interfaces, and to fit them to your business needs.
You can edit the following component configurations within an application using FLUID:

PUBLIC Page 9 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Floorplan (Structure)
Floorplans provide the structure of your application. Depending on the floorplan instance, you can add extra pages, steps, and views to your application.
UIBB within the floorplan (Content)
UIBBs provide the content of the user interface in your application. You can attach your UIBBs to the relevant pages, steps, views, and define how the UI
looks at each stage of the application.
 Amongst other things, you can also configure Quick Help for your application, change the global settings for your app lication, set variant parameters, and
configure toolbars with predefined buttons and navigation menus, and attach events to these elements.
You launch FLUID in administrator (Customizing) mode or in expert (Developer) mode, depending on the types of changes you want to carry out, and for whom the
changes are applicable.
For information about the individual fields in FLUID, see the context-menu option (right mouse-clic k) More Field Help in the system.

Note
Use Internet Explorer 7 or higher when using FLUID.

FLUID Layout
The following figure illustrates the layout of FLUID. However, as it can be personalized, it may not appear exactly as it does here:

FLUID can be broken down into the following parts:


Title Bar 
Displays the name of the component configuration, and the active screen or page within it.
Page Toolbar 
 As well as switching between edit and display modes, this toolbar provides you with toggle buttons to control the display of the Adaptations ,
Comparisons , Repositories , Navigation , and Attributes panels. Additional Functions displays menu options for testing your appli cation (displaying it
in the runtime environment), making copies of appl ication configurations and their individual component configurations ( Deep-Copy ), creating modification-
free enhancements, and resetting customizing changes, and displaying properties of the component such as package details.
In edit mode, the toolbar disp lays the Save As D raft button, allowing developers to continue making changes to a configuration at a later date. A message
appears if a draft version of a configuration exists.
Message Area
The primary area for the display of system messages.
Bread Crumb
 Allows you to move to different components within your application configuration. When navigating between different components, FLUID ensures that the
original work mode ( edit or display) for each component remains the same.
Panels
FLUID is divided into a number of areas and panels, each with a different function; not all are visible for all components. These are described in detail in the
following s ections.

General Settings Panel


The information displayed in this panel is component-dependent. Information that relates to the floorplan or GUIBB component as a whole is displayed here. The
panel is divided into the following sections:
Classification Settings
Component configurations may be grouped into different classifications.
Transient Settings
Settings to determine the transient behavior of the application.
Message Settings
Settings to control the app earance of the Message Area .
 Additional Settings
Settings specific to the particular floorplan or GUIBB being edited.
The toolbar in this panel is also component-dependent. It provides you with access to a number of actions for both the floorplan and GUIBB component. Menu
options for the floorplan components include App lication Controller Settings , Event Action Types and Message Mapper Settings . Menu options for the GUIBB
components include settings for Final Flags , Feeder Class , Drag-and-Drop as well as settings for sorting, grouping and aggregation.

PUBLIC Page 10 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Preview
Illustrates how the application looks at runtime. It displays the interface of the application as a set of configurable components (the UIBBs), which you can
individually select to edit their attributes. You can drag-and-drop the individual UIBBs around this panel. You can also access the attributes of toolbar elements
from this panel, and move elements around in the toolbar.
The way objects are displayed in this panel depends on which level of your application (floorplan or UIBB) you are. From the floorplan level, you can navigate
directly into the individual UIBBs (to find out if a UIBB is configurable, move the mouse over the UIBB box; the box changes color, and an icon appears in the top
right corner of the box). Choose the icon to navigate directly to the UIBB component. If the UIBB component is actually an FPM GUIBB component, you remain
inside FLUID; otherwise, you are transferred to the standard Web Dynpro editor.
On both floorplan and UIBB levels, a context menu allows you, for example, to navigate to and configure the different components in your application, add or delete
UIBBs, and add new sections and toolbar elements.
This panel also contains the Show/Hide UIBB Previ ew button. This allows you to change how the UIBB is disp layed in the Preview panel; UIBBs can be
displayed as abstract boxes with their most important technical details, or they can be displayed as they would appear at runtime. Only UIBBs that have
implemented the interface IF_FPM_CFG_UIBB_PREVIEW  can be displayed as they would appear at runtime. This feature is available for all floorplan
components (except the OVP floorplan), and the tabbed component.

Object Schema (for example Guided Activity Schema, Overview Page Schema, List Schema,
Form Schema)
Outlines the structure of the individual GUIBB or floorplan configuration, and displays its UI elements in a tabular form. You can move elements within the table by
using the Up and Down buttons, or by dragging them to a new location. You can select elements in the table, and edit their attributes in the Attributes panel.
The toolbar of this panel is component-dependent. It provides the following actions:
 Add or remove individual UI elements to the GUIBB or floorplan component, for example, add a main step to a GAF floorplan, or add a column in a List
component.
Configure the IDR (of OIF and GAF floorplan configurations)
Configure a UIBB (the Configure UIBB button is only visib le when the component has a configuration name).

Attributes
Displays the attributes of configurable UI elements. Whether you can edit these elements depends on the UI element itself. In this panel, you also have access to
the following features:
Display-type properties
Each display type has its own set of properties. For more information on display types, search for User Interface Elements  in the Reference section of 
the Web Dynpro ABAP documentation in the SAP Help Portal.
 Action assignments for buttons
Final Flags
See the link at the end of this section.

Navigation
 Allows you to move between, and select, the pages you would like to edit in your application, for example, the initial screen, the main screen of an application
variant, an edit page, or a dialog box. Here, you can also add new, delete, and copy pages i n your appl ication. The type of pages availab le in the Navigation
panel is floorplan-dependent.
This panel is available only for the floorplan configurations.

Repositories
Provides you with a list of repository items that can be dragged to the object schema, and Preview panels . The list of repository items is c omponent-dependent,
and includes, for example, form fields, list columns, search criteria and search result list items, and UIBBs for the floorplan, composite and tabbed components.
You can search for specific component configurations by entering values in the Component , View or Configuration fields, or you can disp lay all component
configurations for a specific type of UIBB.
This panel may also contain a Buttons section from which you can drag various toolbar elements to the objec t schema, Toolbar Schema , and the Preview
panels.
The New button allows you to create a new UIBB component configuration, which is then added to the Repositories panel, and which you can drag to the objec t
schema panel (for example, the Guided Activity Schema ), and Toolbar Schema panels.

Note
The new UIBB configuration is always created on the configuration (development) level, even if you launch FLUID in administrator mode.

Adaptations
 Allows you to easily create adaptations of existing configurations based on different user contexts, for example, country or role. These adaptations are known as
Context-Based Adaptations (CBA). CBA is covered in more detail in another section of this document.

Comparisons
Indicates the changes that have been made to a configuration, and on which level of the Web Dynpro ABAP configuration framework they have been made (for 
example, on the Customizing level, or on the configuration (developer) level). Comparing configurations is covered in more detail in another section of this
document.

PUBLIC Page 11 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Toolbar Schema
Displays the toolbar plan, and individual toolbar UI elements of your application. You can add additional elements to the toolbar (such as and buttons, button-
choices and link s), and edit their attributes in the Attributes panel. Note that the availab le toolbar elements vary according to the type of page you are working on.
The position of some toolbar elements is determined by the FPM framework, and is unchangeable. Toolbars are covered in more detail in another section of this
document.

Wire Schema

Displays the individual wires (connections) between the UIBBs in a floorplan component. It is available only for the floorplan components, and the Composite UIBB
component. It also display s the transaction handler class. It allows you to add and remove wires, and also gives you acces s to the Grap hical Wire Editor ; a tool
for creating and editing wires within your application in a graphical, easy-to-understand way. Wires are discussed in more detail in the Sharing Data Between
UIBBs  section of this document.

Quickview Schema
Displays details of any quickviews that might be anchored to particular elements of a GUIBB. Hence, this panel is visible only for the GUIBB configurations, and
not for floorplan configurations. Quickviews are covered in more detail in another section of this document.

Menu Schema
Displays details of action menus and context menus that are used in the application. This panel allows you to configure existing menus, and to create and define
new menus of both types. These menu types are covered in another section of this document.

Moving Items between Panels


For most floorplan and UIBB configurations, you can add items from the Repositories panel to the Preview and the objec t schema panels us ing drag-and-drop;
you can remove them too by dropp ing them back on to the Repositories panel.

Related Information
Personalizing FLUID (Applic ation-Specific)
Viewing Freestyle UIBBs in FLUID
Editing Applications with FLUID - Examples
Context-Based Adaptations
Wiring with the Graphical Wire Editor 
Final Flags

  1.1.4.1 Personalizing FLUID (Application-Specific)


Use
When you open an application in design time using FLUID, the Floorplan Manager configuration editor and user interface designer, you can change the layout and
appearance of FLUID to suit your own requirements.
The changes y ou make are user-specific and app lication-specific.
The changes you make to FLUID in an application are remembered by the system; your changes are visible the next time you open FLUID for the same
application.

Features
You can personalize FLUID in the following ways:

Change the appearance and layout of the panels


Use the Collapse and Expand icons in the panel headers to change their display state
Rearrange panels using drag-and-drop
Place the curs or in the title area of a panel and drag the panel to another position in the work area. This is not applicab le for the Navigation and
Repositories panels.
Place panels in one column or place them on top of each other to form a tabstrip
To place the panels in a tabstrip, place the cursor in the title area of a panel and drag the panel on top of another panel's title area. The title area of 
the second panel is selected, indicating that you can drop the first panel on top of it. You can change the order of panels in a tabstrip using the
method just described.
To place the panels in a single column, place the cursor in the title area of a panel and drag it to a free space within the work area (area right of the
vertical splitter control). A dotted line appears indicating the new position of the panel.
 Adjust the size of the work area using the splitter controls located at the bottom and on the left side of the work area.
 Add, remove, and move columns in the following panels using the Personalize button on the panel's toolbar:
Floorplan/GUIBB Schema
Toolbar Schema
Wire Schema
Navigation Panel
Choose the Navi gation , Repositories , and Attributes toggle buttons on the page toolbar to disp lay the corresponding panels.

  1.1.4.2 Viewing Freestyle UIBBs in FLUID

PUBLIC Page 12 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

To be ab le to display a freestyle UIBB in the Preview panel of FLUID, the application must implement the FPM Web Dy npro IF_FPM_CFG_UIBB_PREVIEW
interface.
This interface provides the UIBB_PREVIEW  method with the IV_INTERFACE_VIEW  importing parameter, which is the actual visi ble v iew, and the
EV_PREVIEW_WINDOW  exporting parameter.

The application itself must check that the window which is returned is defined, and functions correctly at design time.

Related Information
User Interface Building Blocks (UIBBs)

  1.1.4.3 Editing Applications with FLUID - Examples

Use
You edit your Floorplan Manager (FPM) applications with FLUID (Flexible UI Designer), FPM's UI designer and configuration editor.
 As an introduction to editing your applications using FLUID, the next sections show you how to carry out the following activities:
 Accessing and editing the UIBB component:
Editing UIBB Components in an Application (generic procedure)
 Adding an Existing UIBB to an App lication
 Adding a List Component to an Application
 Adding a Tabbed Component to an Application
Editing a Form Component inside an Application
Editing the floorplan component:
Editing the Floorplan Component of an Application (generic procedure)
Changing the Title of a Roadmap Step in an Application
 Adding a New Button to the Toolbar in the Floorplan Component
Other activities:
Moving Between the Floorplan and UIBB Components

Note
In the example activities above it is assumed that you edit your application configurations on the Customizing  level, that is, you use FLUID in the
administrator mode.

Related Information
Customizing FPM Applications
FPM/Web Dy npro ABAP Adjustment Concept
Flexible User Interface Designer (FLUID)

  1.1.4.3.1 Editing the Floorplan Component of an Application

Use
Floorplan Manager (FPM) applications contain a floorplan component configuration and one or more UI building block (UIBB) component configurations. You use
FPM's configuration editor, FLUID (Flexible User Interface Designer), to make changes to both the floorplan and UIBB component configurations.

Procedure
This procedure is a generic procedure for accessing and editing the floorplan component of an application configuration. To do this, proceed as follows:
1. Run the applic ation you want to edit and choose the Customize Page icon on the main toolbar.
2. Create a new Customizing for the component if none exists and select the relevant transp ort request.
The FPM configuration editor, FLUID, is displayed in edit mode.
3. Choose the Navigation , Attributes and Repositories toggle-buttons on the toolbar to disp lay the corresponding panels.
4. In the Navigation panel, choose the correct variant and page you want to edit in your floorplan.
5. You can now make the following changes, amongst others, usi ng the panels below:
<Floorplan Type> Schema
Select a row containing the various floorplan elements and edit their corresponding attributes in the Attributes panel. For example, y ou can
selec t the main view of an OIF (Ob ject Instance Floorplan) component and change the Main View Name attribute.
 Add a new main view or subview to an OIF floorplan, or a new main step or substep to a Guided Activity floorplan (GAF) or a new page to an
Overview Page floorplan (OVP).
Choose the Add Expl anation button on the toolbar to add explanations to the various floorplan el ements that the user can read at runtime.
Choose how to display the UIBBs within a section for an OVP floorplan.
 Add an additional UIBB to the floorplan by c hoosing the Add UIBB button on the toolbar or by dragging an existing one from the Repositories
panel.
Toolbar Schema

 Add further elements to the floorplan toolbar(s) or rearrange existing toolbar elements. You can edit the Visibili ty attribute to decide whether a toolbar 
element is visible or not.
Wire Schema
 Add wires between UIBBs within your floorplan. Wires enable the transfer of data between the UIBBs.
General Settings

PUBLIC Page 13 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Make changes to the floorplan component as a whole in this panel.


Settings relating to the displ ay of the Mess age Area allow you to determine whether or not you display the message log.
The Scroll Bars field allows you to determine whether the system should displ ay sc roll bars for the floorplan c omponent at runtime.
The OVP floorplan offers you several additional options. For example, you can enable personalization of the floorplan, choose whether the UIBBs
within your floorplan are displayed as read-only or editable at runtime, and choose whether UIBBs that are displayed in collapsed panels participate
in the FPM event loop only when the panel is expanded.
Navigation panel
Edit or add new types of pages to your application (for example, an initial page, an edit page, or a dialog box. You can also create new variants for the
floorplan.
6. Save your changes.

More Information
Editing Applications with FLUID
Wiring -Transferring Information between UIBBs

  1.1.4.3.2 Changing the Title of a Roadmap Step in an Application

Use
 A roadmap is a graphical ill ustration of the individual steps of an activity performed by a user to complete a task. The roadmap is divided into a series of main
steps, each of which can be further divided into substeps. The user can click a toolbar button or directly on a step to navigate through the roadmap.
The Guided Activity Floorplan (GAF) is a floorplan type based around such a roadmap.
This procedure details how to edit the floorplan component of an application configuration, using a change of title in a roadmap step as an example.

Procedure
To change the title of a roadmap step in a guided activity floorplan type, proceed as follows:
1. Run the app lication and choose the Customize Page icon on the toolbar.
2. Create a new Customizing for the component if none exists and select the relevant transp ort request.
FLUID is opened and displays the application in edit mode.
3. Choose the Navigation button in the main toolbar to disp lay the Navigation panel and choose the page on which the GAF roadmap exists (you can see
the roadmap immediately in the Preview panel).
4. Choose the relevant step in the Preview panel or in the Guided Activity Schema .
5. Choose the Attributes button in the main toolbar to disp lay the Attributes panel and enter a new name for the step in the Main Step Name (or Subs tep
Name ) field.
6. Choose Save .

To see your changes at runtime, choose Test under the Additional Functions button on the toolbar.

More Information
Editing Applications with FLUID

  1.1.4.3.3 Adding a New Button to the Toolbar in an Application

Use
 A Floorplan Manager application may contain several toolbars. These toolbars may appear in the floorplan component or the UIBB component or both.
This procedure details how to access a toolbar in the floorplan component of an application.

Procedure
To add a new button to a toolbar in the floorplan component of an application, proceed as follows:
1. Run the app lication and choose the Customize Page icon on the toolbar.
2. Create a new Customizing for the component if none exists and select the relevant transp ort request.
FLUID is opened and displays the application in edit mode.
3. Choose the Toolbar Schema .
4. Choose the Add Toolbar Element button in the toolbar of the Toolbar Schema .
The Select Toolbar Elements dialog box opens.
5. Choose a toolbar element from the range of buttons, b utton-choices and link s. The toolbar element now appears in the Toolbar Schema and is vis ibl e also
in the Preview panel.
6. Choose the Attributes button on the main toolbar to disp lay the Attributes panel and edit the fields of your new toolbar element (for examp le, enter a name
for your button in the Text field or assign an FPM event ID).
7. Choose Save .
To see your changes at runtime, choose Test under the Additional Functions button on the toolbar.

More Information
Editing Applications with FLUID

PUBLIC Page 14 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

  1.1.4.3.4 Editing UIBB Components in an Application

Use
Floorplan Manager (FPM) applications contain a floorplan component configuration and one or more UI building block (UIBB) component configurations. You use
FPM's FLUID (Flexible User Interface Designer) to make changes to both the floorplan and UIBB component configurations.

Procedure
This procedure is a generic procedure for accessing and editing UIBB components in an application configuration. To do this, proceed as follows:
1. Run the applic ation you want to edit and choose the Show Customizable Areas icon on the main toolbar.
This displays all the customizable UIBBs within the floorplan of your application; a colored overlay appears over those UIBBs which are customizable.
2. Choose one of the customizable UIBBs.
 A separate browser window opens.
3. Create a new Customizing for the component if none exists and select the relevant transp ort request.
The FPM configuration editor, FLUID, is displayed in edit mode.
4. Choose the Attributes and Repositories buttons on the toolbar to disp lay the corresponding panels.
You can now make the following changes, amongst others, using the panels below:
<GUIBB Component> UIBB Schema
Select a row containing an individual el ement of the UIBB and edit its attributes in the Attributes panel . For example, you can rename a
column header of an individual column in a list component or choose the display type of a column.
 Add additional, UIBB-specific elements to the UIBB by choosing buttons on the toolbar or by dragging existing ones from the Repositories

panel.
Toolbar Schema
 Add further elements to the floorplan toolbar(s) or rearrange existing toolbar elements. You can edit the Visibili ty attribute to decide whether a toolbar 
element is visible or not.
Menu Schema
Edit or create new action menus and context menus. Note that this panel is not available for all GUIBBs.
General Settings
Make changes to the GUIBB component as a whole. For example, for a list component there are settings to determine the appearance of the
complete list; you can determine the number of rows and columns to display, how many fixed columns there are, the total width of the list, and whether 
you can export the list to a spreadsheet.
Note that not all panels are available for all UIBB components.
5. Save your changes.

More Information
Editing Applications with FLUID

  1.1.4.3.5 Adding an Existing UIBB to an Application

Use
You can add additional, application-specific views (UIBBs) to a Floorplan Manager application at any time.
You add existing UIBBs (freestyle or GUIBB) to the floorplan component configurations of your application.
This is a simple, generic procedure for adding existing UIBBs to an application; there are other examples specific to individual GUIBBs.

Prerequisites
The UIBB you want to add to your application has already been created.

If you are adding a generic UIBB (GUIBB) such as a list or form component, you must assign a feeder class to the GUIBB beforehand.

Procedure
1. Run the appl ication and choose the Customize Page icon in the toolbar.
2. Create a new Customizing for the component if none exists and select the relevant transp ort request.
FLUID is opened and displays the app lication in design mode.
3. From the main toolbar, disp lay the Navigation panel and choose the page in which the UIBB will be inserted.
4. Choose the <Floorplan Component> Schema panel (for example, Guided Activity Schema , Overview Page Schema , or Ob ject Instance Schema );
this is the panel in which you insert your UIBBs.
5. Select an app ropriate row in the table and choose Add UIBB in the toolbar of the objec t schema panel.
6. In the dropdown list of the Add UIBB button, choose the type of UIBB that you want to add to your floorplan.
The UIBB is inserted in the row that you selected. If you chose a generic UIBB (G UIBB) from the list (for example, Form Component ), the sys tem
automaticall y completes the fields Component (Name) and Window Name . You need only to enter the name of your configuration. If you chose a freestyle
UIBB, you must enter details for all three fields, Component (Name) , Window Name and Configuration Name .
7. Choose Save .
To see your changes at runtime, choose Test under the Additional Functions button on the toolbar.

Note

PUBLIC Page 15 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

You can only edit your UIBB further, using FLUID, if you have entered a configuration name for the UIBB.

Note
There are other methods for inserting a UIBB into the floorplan component configuration of your application. Choose the Repositories panel to search for an
existing UIBB, and drag it to either the Preview panel or the <Floorplan Component> Schema panel.

More Information
Editing Applications with FLUID
 Adding a List Component to an Application

  1.1.4.3.6 Adding a List Component to an Application

Prerequisites
The list component configuration exists already and a feeder class has been assigned to it.

Context

You can add an additional, application-specific view (UIBB) to a Floorplan Manager application at any time in the form of a new list.

Procedure
1. Run the applic ation you want to edit and choose the Customize Page button on the main toolbar.
2. If there is no previous Customizing for the component, you must create one. Choose New on the toolbar. Enter a descrip tion and a transport request for the
new Customizing and choose OK .
The FPM configuration editor, FLUID, is displayed in edit mode.
3. Choose the Navigation , Attributes and Repositories buttons on the toolbar to disp lay the corresponding panels.
4. You can add a list component in the following ways:
Drag a component from the Repositories panel into the <Floorplan Type> Schema panel
1. Under the UIBBs section of the Repositories panel, us e the filter fields to locate your existing list component configuration. For example,
choose List UIBB in the UIBB Type field.
 A list of existing configurations for the list component appears.
2. Drag the required configuration into the <Floorplan Type> Schema panel . Use the Up and Down buttons on the toolbar to move the
configuration into the required l ocation.
 A new row appears in the <Floorplan Type> Schema panel table indicating the UIBB you have just added.
Drag a component from the Repositories panel into the Preview panel
1. Under the UIBBs section of the Repositories panel, us e the filter fields to locate your existing list component configuration. For example,
choose List UIBB in the UIBB Type field.
 A list of existing configurations for the list component appears.
2. Drag the required configuration into the Preview panel. Onc e inside the panel, you can drag the configuration into its exact location.
 A new row appears in the <Floorplan Type> Schema table indicating the UIBB you have just added.
Choose the Add UIBB button in the <FloorplanType> Schema panel
1. In the <Floorplan Type> Sc hema panel , select a row in the table in which you want to add the new UIBB.
To do this, choose the Expand Node icons to open up the floorplan elements in the table, s uch as a Section (in the OVP floorplan ins tance),
a Main View or Subview (in the OIF instance) or Main Step or Substep (in the GAF floorplan instance).
2. Choose the Add UIBB button in the toolbar and choose the List UIBB option.
 A new row appears in the <Floorplan Type> Schema panel for the UIBB you have just added.
5. Specify the UIBB as a list component by entering the following values in the Attributes panel:
In the Component field, enter FPM_LIST_UIBB.
In the Window Name field, enter LIST_WINDOW  .
In the Configuration Name field, enter a name for the list component configuration.

Note
 Although the Configuration Name field is not marked as a required entry, we recommend that you enter a name here to activate the Configure UIBB
button.

6. Save your entries.

Next Steps
Generic User Interface Building Block (GUIBB)
Flexible User Interface Designer (FLUID)

  1.1.4.3.7 Adding a Tabbed Component to an Application

PUBLIC Page 16 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Prerequisites
The tabbed component configuration exists already.

Context
You can add an additional, application-specific view to a Floorplan Manager application at any time in the form of a new tabbed component.

Procedure
1. Run the applic ation you want to edit and choose the Customize Page button on the main toolbar.
2. If there is no previous Customizing for the component, you must create one. Choose New on the toolbar. Enter a descrip tion and a transport request for the
new Customizing and choose OK .
The FPM configuration editor, FLUID, is displayed in edit mode.
3. Choose the Navigation , Attributes and Repositories buttons on the toolbar to disp lay the corresponding panels.
4. You can add a list component in the following ways:
Drag a component from the Repositories panel into the <Floorplan Type> Schema panel
1. Under the UIBBs section of the Repositories panel, us e the filter fields to locate your existing tabbed component configuration. For examp le,
choose Tabbed UIBB in the UIBB Type field.
 A list of existing configurations for the tabbed component appears.
2. Drag the required configuration into the <Floorplan Type> Schema panel . Use the Up and Down buttons on the toolbar to move the
configuration into the required l ocation.
 A new row appears in the <Floorplan Type> Schema panel table indicating the UIBB you have just added.
Drag a component from the Repositories panel into the Preview panel
1. Under the UIBBs section of the Repositories panel, us e the filter fields to locate your existing tabbed component configuration. For examp le,
choose Tabbed UIBB in the UIBB Type field.
 A list of existing configurations for the tabbed component appears.
2. Drag the required configuration into the Preview panel. Onc e inside the panel, you can drag the configuration into its exact location.
 A new row appears in the <Floorplan Type> Schema table indicating the UIBB you have just added.
Choose the Add UIBB button in the <FloorplanType> Schema panel
1. In the <Floorplan Type> Schema panel , select a row in the table in which you want to add the new UIBB.
To do this, choose the Expand Node icons to open up the floorplan elements in the table, s uch as a Section (in the OVP floorplan ins tance),
a Main View or Subview (in the OIF instance) or Main Step or Substep (in the GAF floorplan instance).
2. Choose the Add UIBB button in the toolbar and choose the Tabbed UIBB option.
 A new row appears in the <Floorplan Type> Schema panel for the UIBB you have just added.
5. Specify the UIBB as a tabb ed component by entering the following values in the Attributes panel:
In the Component field, enter FPM_TABBED_UIBB.
In the Window Name field, enter TABBED_WINDOW 
.
In the Configuration Name field, enter a name for the tabbed component configuration.

Note
 Although the Configuration Name field is not marked as a required entry, we recommend that you enter a name here to activate the Configure UIBB
button.

6. Save your entries.

Next Steps
Flexible User Interface Designer (FLUID)
Generic User Interface Building Block (GUIBB)

  1.1.4.3.8 Editing a Form Component inside an Application

Use
You can change the appearance of a form inside a Floorplan Manager application at any time. Forms are displayed on the screen using a configuration of the form
component based on the FPM_FORM_UIBB UI building block.
This procedure details how to edit the UIBB component of an application, using a form component as an example.

Procedure
To edit a form component in an application, proceed as follows:
1. Run the appl ication and do either  of the following steps:
1. Choose the Customize Page button on the toolbar. Create a new Customizing for the component if none exis ts and selec t the relevant transport
request.

FLUID is opened and displays the application in edit mode.


1. Choose the Navigation button in the main toolbar to disp lay the Navigation panel and find the page on which the form component exists (you
can see the form immediately in the Preview panel).
2. Choose the form component in the Preview panel; the box changes c olor and a button app ears in the top right corner of the box.
3. Choose the button in the box.

PUBLIC Page 17 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

2. Choose the Show Customizable Areas button on the toolbar.


 A colored overlay appears over any UIBB that is customizable.
1. Click the cus tomizabl e form component in your application. Create a new Customizing for the component if none exis ts and selec t the relevant
transport request.
FLUID is opened and displays the application in edit mode.
2. FLUID now displays the settings rel evant for the form component only (and not for the floorplan component). Notice that there are now different fields in the
General Settings tab; these are fields sp ecific to the form component.
3. Choose the A ttributes and Repositories buttons on the toolbar to disp lay the corresponding panels.
You can now make the following changes, amongst others, using the panels below:
Form UIBB Schema
Select a row containing an individual element of the form component and edit its attributes in the Attributes panel. For exampl e, you can reposition
the label of a field in the form or change the display type of a field.
 Add additional fields, toolbars, and toolbar elements to the form by choosing the Add Element button on the toolbar or by dragging existing fields from
the Repositories panel.
General Settings
Make changes to the form component as a whole, for example, change the layout of the form. You can also edit the feeder class of the form
component or the parameters of the feeder class.
Preview
In the Preview you can use the drag-and-drop feature to reposition single and mul tiple elements on your form. If the height of an element's field and
label are identical, you can resize (lengthen) them at the same time by making sure both are selected when you resize. You can delete an entire row
as long as there is no element in it. Choosing the Add Line button on the Preview toolbar will i nsert a new line under the cell or row that is currently
selected. You can also edit the field labels directly in the Preview.
To add new elements to the form, choose the buttons on the Preview toolbar or drag the elements from the Repository to the Preview .
4. Make your changes and choose Save .
To see your changes at runtime, choose Test under the Additional Functions button on the toolbar.

More Information
Editing Applications with FLUID

  1.1.4.3.9 Moving Between UIBB and Floorplan Components

Use
 A Floorplan Manager (FPM) app lication configuration consists of a floorplan component with one or more User Interface Building Block (UIBB) components.
You can use FPM's configuration editor, FLUID, to edit both the floorplan and UIBB components of an application.
You can use the following objects to move between the two types of components:
Breadcrumb above the work area
Configure UIBB button on the <Floorplan> Schema panel toolbar 
Configurable UIBB in the Preview panel
This is explained in detail in the following sections.

Prerequisites
You have launched FLUID from an application, and the application is now displayed, at floorplan level, in the design time environment.

Procedure
Using the Configure UIBB B utton

Figure 1: Floorplan Schema Panel showing the Configure UIBB Button

PUBLIC Page 18 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

To move from the floorplan component level to the UIBB component level in FLUID, proceed as follows:
1. Choose the <Floorplan> Schema panel (the figure above shows the panel for an Overview Page type of floorplan).
2. Choose a row in the table that contains the UIBB y ou want to edit.
Note that a UIBB can only be edited (configured) if a Configuration Name is present; the Configure UIBB button is only vi sib le if there is a configuration
name.
3. Choose Configure UIBB .
4. Depending on the type of UIBB you selected, the following occurs:
GUIBB (for example, the list component in the figure below)
In the same window, FLUID now switches to the settings for the selected GUIBB. FLUID indicates that you are now on the UIBB component level in
the following ways: the settings inside the General Settings panel are app ropriate only to the selected type of GUIBB, the Navigation panel is
unavailable, and the <Floorplan> Schema panel is replaced by the <GUIBB> Schema panel.
Freestyle UIBB
FLUID redirects you to the standard Web Dynpro configuration editor; you cannot configure freestyle UIBBs inside FLUID.
5. To return to the floorplan component inside FLUID, use the breadc rumb ab ove the work area (desc ribed i n the section below).
Using the Configurable UIBB Box

Figure 2: Preview Panel showing the Icon for Configuring the UIBB

To move from the floorplan component level to the UIBB component level in FLUID, proceed as follows:
1. In the Preview panel, move the mouse over the UIBB you want to edit.
If the UIBB is configurable, the box representing the UIBB is then highlighted. It also contains an icon in the top, right corner of the box.
2. Choose the icon inside the UIBB box.
3. Depending on the type of UIBB you selected, the following occurs:
GUIBB (for example, the list component in the figure above)
In the same window, FLUID now switches to the settings for the selected GUIBB. FLUID indicates that you are now on the UIBB component level in
the following ways: the settings inside the General Settings panel are app ropriate only to the selected type of GUIBB, the Navigation panel is
unavailable, and the <Floorplan> Schema panel is replaced by the <GUIBB> Schema panel.

Freestyle UIBB
FLUID redirects you to the standard Web Dynpro configuration editor; you cannot configure freestyle UIBBs inside FLUID.
4. To return to the floorplan component inside FLUID, use the breadc rumb ab ove the work area (desc ribed i n the section below).
Using the Breadcrumb

PUBLIC Page 19 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Figure 3: Breadcrumb in FL UID

To move from the UIBB component level back to the floorplan component level in FLUID, proceed as follows:
1. Locate the breadcrumb, j ust below the page toolbar and above the work area.
There are three hyperlinks in the breadcrumb. One hyperlink is not active (this represents the UIBB component that you have been making changes to).
2. The text of the hyperli nk next to the inactive hyp erlink b egins with the abbrev iated name of the floorplan (for example, OVP in the figure above). Choose this
hyperlink.
The system navigates you back to the floorplan component of the application.

More Information
Editing Applications with FLUID

  1.1.4.4 Formatting Individual UI Elements (Styling)


You can use FLUID to format individual UI elements within an application.
It is possible to adjust the look and feel of FPM applications with the UI Theme Designer; for example, you can assign a new background color for all buttons
within an application. However, it is not possible to assign a background color to only one specific button. To be able to do this, the FPM configuration editor,
FLUID provides several style attributes for the UI elements on a screen.
In FLUID, the attributes UI Element Style , Label Style , and Title Style exist for many UI elements.

Note
Note: Instance styling is application-specific. If you change the text format of a field label, the change is only visible in that application.

This feature is based on the Web Dy npro ABAP UI element property styleClass Name . For more information, search the SAP NetWeaver Library (Help Portal) for 
styleClassName in the UI Element Properties section of the Web Dynpro ABAP documentation.

Syntax for UI Element Style Attributes


The style is entered as a string containing a set of attribute name-value pairs. Name and value are separated by a colon (:), and the name-value pairs are
separated by a semi-colon (;), as shown in the following example:
fontColor:red;fontSize:20px

Entering this string as the UI Element Style attribute of a label for a field in a form, for example, ens ures that the label has red text with a font size of 20.

Note
The syntax is based on the property names of the HTML DOM (Javascript DOM API) Style Object, and not the CSS attribute names (for example, font-
color:red;font-size:20px will not work here).

 At runtime, this style is converted to a CSS style and you might find something similar to the following code within the HTML source of your running app lication:
.A4C7B29749CA93581F368B5180D72DE2AD559BAFC {
color: #ff0000 !important;
font-size: 20px;}
Whether or not a specific style attribute is applied at runtime depends on the type of UI element used. For example, assigning a background image (using
attribute bac kgroundImage ) to a button will have no effect as the Button UI element does not support bac kground images.

 
PUBLIC Page 20 of 110
© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

  1.1.5 Analyzing Applications with the Runtime Analysis Tool


(RAT)

Definition
The Floorplan Manager (FPM) Runtime Analysis Tool (RAT) helps you understand how the current UI of your application was created.
For example, you can determine how FPM UI elements such as generic UI building blocks (GUIBBs), buttons, fields, roadmap steps, table columns, and titles
came to appear on the UI. Were these elements implemented by the FPM Configuration Application Controller (AppCC) dynamically? Were these elements
created by a user personalizing the application, or were these elements introduced in a customizing or enhancement of the application? The RAT helps you to
answer these types of question.

Structure
The RAT exists as a tab page divided into different sections, each containing information related to the selected UI element. Each section has a header, and you
can expand the section to show a more detailed display.
Depending on the type of element you have selected, you may see the following sections:
Feeder Class
The name of the GUIBB's feeder class is shown. This section appears only if a GUIBB component is selected.
Configuration Data
Displays the details, in tabular form, of an element as it was configured originally at design time. Separate rows in the table are created for any customizing
or enhancement that has taken place. Therefore, a table displaying only one row of data means that no customizing or enhancement exists for this
configuration; that is, the UI element you selected was created on the configuration level. You can select a row to display further details.
<UI Element> <action> by API
Indicates if the change to a UI element has occurred dynamically, that is by the Application Configuration Controller (AppCC). Appears only for the floorplan
component of an application.
Field Catalog Related Information
 App ears only if a GUIBB component is selected.
Field Desc ription
 App ears only if a GUIBB component is selected.
 Action Definition
This section displays details about an action or event associated with, for example, a button.
Deletions
Indicates what has been deleted.

Note
The RAT is available for only a limited number of floorplans, GUIBBs and other FPM UI elements.

More Information
 Accessing the Runtime Analysis Tool (RAT)

  1.1.5.1 Accessing the Runtime Analysis Tool (RAT)

Use
The Runtime Analysis Tool (RAT) helps you determine the origin of the UI elements displayed in your application at runtime.

Prerequisites
Before you can use the Floorplan Manager (FP M) RAT, you must switch on the Web Dy npro Trace Tool . To do this, complete the following steps :
1. Run the transaction WD_TRACE_TOOL in the ABAP Workbench (transaction SE80).
2. Choose the Activate for this User button.
3. In the Selection of Trace Features dialog box, select the WD Component Configuration check box, and choose OK .
The message Tracing active for <USERNAME> (30 minutes still)  appears.
You can now use the FPM RAT.

Procedure
To access the FPM RAT, complete the following steps:
1. Run your app lication.
2. Right-click on the UI element that interests you, and, in the context menu, choose Technical Help .
3. Navigate to the FPM tab.
The FPM tab shows various sections containing information related to the selected UI element.

Note
If the FPM tab page is not visible in the context menu, either the RAT is not available for that particular UI element or floorplan, or you have not opened the
Web Dynpro Trace Tool application.

PUBLIC Page 21 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

More Information
 Analyzing Applications with the Runtime Analysis Tool (RAT)

  1.1.6 Comparing Configurations

Use
The Comparisons panel (als o known as 'the Compari son Tool') is used b y Admini strators and Developers to analyze the changes that have been made to an
FPM configuration.
Over time you may decide to make changes to SAP-delivered configurations or even your own configurations. It is often helpful to know the history behind these
changes. The Comparisons panel assists you with this.
The Comparisons panel is l ocated in the FPM configuration editor, FLUID. Not only c an you use it to compare a Customizing of a configuration with the original
configuration, but you can also use it to compare Context-Based Adaptations (CBA) and Enhancements with the original configuration.

Prerequisites
The Comparisons panel is only availab le if a Customizing, Context-Based Adaptation, or Enhancement of the original configuration exists.

Structure
The panel is divided into the following sections:
Details of Changes
This section display s, in a hierarchic al form, a list of the UI elements which have been changed. The Change Type column indicates whether an element
has been added, changed or deleted.
Note that elements that you have not changed may s till app ear in this section. For example, an attribute of a Page in an Overv iew Page (OVP ) floorplan
might not have been changed, but Page still appears in this section if an attribute of an element on the Page has been changed.
 Attribute Changes
This section displays the changes to the elements in greater detail. For example, it can display the previous and current values of an element.
Note that elements that you have not changed may s till app ear in this section. For example, if you delete an element, the Sequence Index of remaining
elements is changed and is therefore displayed.
This section also contains a Reset column. You may be able to reset an attribute to its original state by choosing the Reset icon for that attribute. The
Reset icon is only dis play ed for attributes that have no dependencies or influences on other attributes of the configuration. However, you can stil l change an
attribute's value manually in the <Floorplan/GUIBB> Schema or Attributes panel in FLUID for example.
Displaying the Comparisons Panel

To display the Comparisons panel in FLUID, choose the Adaptations / Comparisons button in the main toolbar of FLUID, and select the Comparisons menu
option. The Comparisons panel is dis play ed just below the main toolbar.
Note that the panel is not available on the configuration (Development) level; you can access it on the Customizing level or from within a Context-Based Adaptation
or Enhancement.
Making a Comparison

To compare your Customizing, Context-Based Adaptation or Enhancement with the original or another configuration, p roceed as follows:
1. Ensure that the configuration you want to compare with the original (or previous) configuration is displ ayed on the screen, that is, di splay the Customizing, a
Context-Based Adaptation, or an Enhancement of the configuration.
Regarding CBA configurations, display the Adaptations panel and select the relevant, adapted configuration.
2. Dis play the Comparisons panel.
In the main toolbar, choose the Adaptation/Comparisons button, and selec t the Comparisons menu option.
The panel is displayed under the main toolbar.
Note that the Adaptations and Comparisons panels are dis play ed in the same area of the screen. Choose the tabs to navigate between the panels.
3. Select a configuration in the Compare Current <Customizing/Enhancement/A daptation> with: field.
Here, you select the original configuration or perhaps a previous Enhancement or another Context-Based Adaptation with which you want to compare the

currently selected configuration.


The Details of Changes section displays the elements which have been changed.
4. Choose a row containing an element in the Details of Changes section to disp lay the attributes of that element; the corresponding attributes are displ ayed in
the Attribute Changes section.
Further details of the element are also displayed outside of the Comparisons panel in the Attributes panel, the Menu Schema , Toolbar Schema and
<Floorplan/GUIBB> Schema .

More Information
Flexible User Interface Designer (FLUID)
Context-Based Adaptations (CBA)

  1.2 Working with GUIBBs


 A section detailing the individual GUIBBs and their features, and features that are common to all GUIBBs.

Related Information
GUIBBs in Detail

PUBLIC Page 22 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Value/Input Helps for Generic UIBBs (GUIBBs)


Dynamic GUIBB Configurations at Runtime
Context Menus and Action Menus in GUIBBs
Quickviews
Moving Data between UIBBs at Runtime (Drag-and-Drop)

  1.2.1 GUIBBs in Detail


Descriptions of the individual GUIBBs, their feeder class interfaces, and how to influence them during runtime and design time.

  1.2.1.1 Analytics Component


 A generic design template which provides a re-usable UI component for the display and interaction of analytical (SAP Business Warehouse) content inside an
FPM app lication.
The Analytics component is implemented using the Web Dynpro component FPM_BICS_GRID_RUIBB. The information displayed in this component at runtime
is determined by the feeder class assigned to the configuration of this Web Dynpro component. However, you can determine the concrete display of the data in
this component when you configure it in the FPM configuration editor, FLUID.
This component can also be combined with a Search component. A special Search feeder class enables the Search component to be used as a selection
screen for variables for one or more queries.
This component can also be combined with a Chart component; a special Chart feeder class is available for this purpose.
Combining the Analytics component with the Search and Chart components provides you with a more comprehensive and fully analytical application.

Note
 A ready-to-use, generic FPM application ( FPM_BICS_OVP ), based on the Analytics component, is available for use immediately in the system.

Note
Note: SAP Business Warehouse is part of the overall SAP NetWeaver platform. It provides tools and functions to enable companies to evaluate and interpret
data. For more information on SAP BW, search for SAP Business Warehouse in the SAP Help Portal, http://help.sap.com.

Implementation Considerations
This component is available only for systems running at least SAP_BW 7 .40 SP0 5.
For this component to be visible in your applications at runtime, your browser must support HTML5.
This component can be viewed in Internet browsers only in Standards Mode. For more information, see UI Control Rendering in Sandards Mode in the SAP
Help Portal (sap.help.com) under the Reference section of Developing Web Dynpro ABAP Applications .

Analytics Component at Runtime


The screenshot below shows an FPM application at runtime, incorporating an Analytics component, a Search component and a Chart component.

Figure 1: Analytics, Search, and Chart Components within an OVP Floorplan Configuration

Unlike the other FPM components, the Analytics component has three interface views (Web Dynpro 'windows') for displaying different facets of the underlying
BICS query.
Query Results Grid

PUBLIC Page 23 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Displays the query results in a grid format. The query results grid can be manipulated using options in the context menu, various toolbar buttons, and the
collapse/expand icons of the hierarchy nodes. The information in this grid is supplied by the window BICS_GRID_WINDOW. The figure below illustrates the
grid layout:

Figure 2: Query Results Grid of Analytics Component

Information Panel
Displays read-only information about the underlying query, such as its technical name, and when it was last updated. This information is supplied by the
window BICS_GRID_INFO.
Navigation Panel
The information for this panel is supplied by the window BICS_GRID_NAVIGATION, and can be placed in the Page Master panel of the Overview Page
(OVP) floorplan. Divided into several sections, this window displays a list of the query characteristics that appear on the row and column axes in the query
results grid, as well as a list of those characteristics that are available but are not displayed in the grid. This window allows the user to manipulate the query
results grid by moving available characteristics to and from the grid axes (using the arrow buttons or drag-and-drop). Additional options to manipulate each
characteristic (for example, sorting) are provided by a context menu.
This panel has the following layout styles:
 Analysis for MS Office (intended for use with the Microsoft Office plug-in)
 As well as the sections for the query fields (characteristics), there is also a section for the filter criteria; this too can be manipulated by the user to
change the display of data in the query results grid.
Fiori
 As well as containing sections for the query fields (characteristics), this layout style also has a search field. Users can search for fields across all
three sections; this is p articularly hel pful if the query contains a large number of fields. Additionally, there is a Settings button in the header of this
panel with the following menu options:
Show Filters
This option displays a filter button next to each field allowing the user to access filter values for that field.
Defer Layout Update
This option pauses the update or refresh of the query results grid so that any changes a user make in the navigation panel are not immediately
visible. This allows for multiple changes to be made in the navigation panel without waiting for the query results grid to be updated each time.
When all the changes have been made in the navigation panel, the user can manually update the query results grid using the Refresh button.
The Fiori layout also contains a filter bar. This area displays information about the current query filter values and allows users to define new queries
too. Use the button, Filter Bar , on the grid toolbar to toggle the display of the filter bar.

PUBLIC Page 24 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Figure 3: Layout Styles of the Navigation Panel

Editing the Component in Design Time


It is recommended to use the Analytics component within an Overview Page (OVP) floorplan configuration.
You can configure this component using the FPM configuration editor, FLUID:
General Settings
The General Settings panel p rovides you with options to change the default values of the width and height of the query data grid, and the width of the row
header column inside the grid. Note that if the text inside this column exceeds the maximimum width, a scrollbar is rendered ( particularly helpful if there are
lots of characteristics on the row axis of the query). You can choose to render various toolbar buttons in the grid; one to display an option for each configured
report-to-report navigation of the configured query, and one to export data to a spreadsheet. Additionally, there is the option to enable the Personalization
dialog box at runtime; this allows the user to bookmark the current state of the grid and query. You can set the layout style of the navigation panel and also
enable the Maximize/ Minimize button in the grid toolbar.
Feeder Class Parameters
The Edit Parameters dialog box allows you to configure the following parameters for the feeder class of the Analytics UIBB:
Query , Query Instance ID
Enter a Query Instance ID if, within the application, multiple independent instances of the same query should be displayed.
Execute Automatically
Select this to work with queries containing variables without configuring a selection screen. The display of the grid triggers the processing of the default
values of the query.
Events
The Toolbar Schema panel allows you to configure the BICS-spec ific events, and other navigational events.
The BICS_GRID_WINDOW is the window that displays the query result set in a data grid, along with a toolbar containing standard and configurable actions. The
query result can be manipulated by the user at runtime using the methods described in the section above. Making a selection in the grid activates particular 
toolbar functions, for example, sorting. The Export to Spreads heet function exports the current query result, indep endent of the visibl e section on the screen. The
toolbar may contain an additional button with 'jump to' actions; these represent the configured report-to-report interfaces for the query. All selection criteria, including
variables and the current selection in the grid, are exposed during the report-to-report navigation.
The Analytics component uses a re-usable feeder class, CL_FPM_RUIBB_BICS_GRID . For extensions, this class can be sub-classed to enable additional,
applic ation-specific functions.

Related Information
 Architecture
Planning Queries
Defined Events
Generic BICS Search Feeder Class
Generic BICS Chart Feeder Class
Generic Analytics Application
Chart Component
Search Component

  1.2.1.1.1 Architecture
For a fully comprehensive analytical application, the Analytics component can be combined with Search and Chart components.
The following figures provide an architectural overview of these analytical components, and their interaction with the SAP Business Warehouse data:

PUBLIC Page 25 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Figure 1: Architectural Overview of Analytical Components - Application View

Figu re 2: A rchitectura l Overvi ew of An alytical Components - S oftware Component View

Note
BICS = Business Intelligence Consumer Services

  1.2.1.1.2 Planning Queries


Planning queries can be consumed in the same way as read-only queries.
The difference is that in planning queries the UIBB reacts to the transactional events of the overview page (OVP) floorplan, for example, FPM_EDIT ,
FPM_CANCEL  and FPM_SAVE . The processing of these events is achieved using an implementation of the wire model transaction interface.

If you use a planning query, the wire model transaction class must be used. The default delivery contains the class CL_FPM_BICS_MODEL_TRANSACTION  for 
this purpose.
If a query is in edit-mode, fields for currency and quantity amounts do not display the corresponding unit next to the number; these are only displayed in the same
cell in read-only mode.

Note
Manual data entries, planning functions and planning sequences are supported for planning queries. For planning functions, a re-useable filter can be

PUBLIC Page 26 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

specified to restrict the amount of data the planning function is working with. For planning functions and planning sequences using variables requiring user 
input, the system displays a dialog box.

  1.2.1.1.3 Defined Events


Events for the Analytics feeder class.

Table 1: Exposed FPM Event IDs for Analytics UIBB

Event ID Description

CV_TB_FILTER_VALUE Toolbar action: Use the current value as filter value, and move the characteristic to the
available axis

CV_TB_FILTER_VALUE_KEEP Toolbar action: Use the current value as filter value, and keep the characteristic on the
current axis

CV_TB_FILTER_SELECT Toolbar action: Open selection dialog box for filter values

CV_TB_FILTER_DELETE Toolbar action: Delete filter for characteristic

CV_TB_SORT_KEY_ASC Toolbar action: Sort by key ascending

CV_TB_SORT_KEY_DESC Toolbar action: Sort by key descending

CV_TB_SORT_TEXT_ASC Toolbar action: Sort by text ascending

CV_TB_SORT_TEXT_DESC Toolbar action: Sort by text descending

CV_TB_SORT_HIERARCHY Toolbar action: Sort according to hierarchy

CV_TB_SORT_SELECTION Toolbar action: Sort according to selection – this function is deprecated and will not
produce any resu lts

CV_TB_SORT_KEYF_ASC Toolbar action: Sort by the current selected key figure according to values ascending

CV_TB_SORT_KEYF_DESC Toolbar action: Sort by the current selected key figure according to values descending

CV_TB_HIER_EXP_ALL Toolbar action: Expand all nodes for the hierarchy

CV_TB_HIER_COL_ALL Toolbar action: Collapse all nodes for the hierarchy

CV_TB_HIER_DISABLE Toolbar action: Disable the hierarchy for the current characteristic

CV_TB_HIER_ENABLE Toolbar action: Enable the hierarchy for the current characteristic

CV_TB_DRILL_SWAP_AXIS Toolbar action: Exchange the characteristics between row and column axis

CV_TB_DRILL_REMOVE Toolbar action: Remove drill-down

CV_TB_DRILL_ADD Toolbar action: Add drill down


List of characteristics to add are included in event parameter 
BICS_GRID_DRILLDO WN_CHARS of type
IF_BICS_MD_CHARACTERISTIC=>TN_T_ID

CV_TB_DRILL_EXCHANGE Toolbar action: Exchange drill-down with


List of characteristics to add are included in event parameter 
BICS_GRID_DRILLDO WN_CHARS of type
IF_BICS_MD_CHARACTERISTIC=>TN_T_ID

CV_TB_DRILL_ADD_ATTRIBUTE Toolbar action: Add attribute

CV_TB_DRILL_REMOVE_ATTRIBUTE Toolbar action: Remove attribute

CV_TB_MEMBER_BY_KEY Toolbar action: Display characteristic values as key

CV_TB_MEMBER_BY_TEXT Toolbar action: Display characteristic values as text

CV_TB_MEMBER_BY_KEY_TEXT Toolbar action: Display characteristic values as key and text

CV_TB_MEMBER_BY_TEXT_KEY Toolbar action: Display characteristic values as text and key

CV_TB_MEMBER_TEXT_SHORT Toolbar action: Use the short text for display

CV_TB_MEMBER_TEXT_MEDIUM Toolbar action: Use the medium text for display

CV_TB_MEMBER_TEXT_LONG Toolbar action: Use the long text for display

CV_TB_MEASURE_FORMAT Toolbar action: Open dialog box for setting the number format of displayed values

CV_TB_MEASURE_SCALING Toolbar action: Open dialog box for setting the scaling factor for displayed values – this
function is deprecated. The event CV_TB_MEASURE_FORMAT  produces a dialog with
formatting and scaling

CV_TB_TOTALS_SHOW Toolbar action: Always show a summary row for the current characteristic

CV_TB_TOTALS_COND Toolbar action: Show a summary row only if there is more than 1 value

CV_TB_TOTALS_HIDE Toolbar action: Hide the summary row for the current characteristic

CV_TB_TOTALS_BELOW Toolbar action: Show the summary row below the characteristic values

CV_TB_TOTALS_ABOVE Toolbar action: Show the summary row above the characteristic values

CV_TB_EXPORT_EXCEL Toolbar action: Export result set to Microsoft Excel


CV_TB_RRI Toolbar action: Execute report-to-report navigation

FPM_NAVIGATE FPM navigation action. The navigation target can be configured using the defined
parameter structure FPM_S_EXTERNAL_NAVIGATION_INFO .

PUBLIC Page 27 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

FPM_QUERY_PLANNING_FUNCTION Toolbar action: Execute a planning function.The name of the planning function can be
configured using the parameter SRVNM (planning function name).

FPM_QUERY_PLANNING_SEQUENCE Toolbar action: Execute a planning sequence. The nam e of the planning sequence can
be configured u sing th e parameter SEQNM (planning sequence name).
 A mapping can be configured for each variable in the planning sequence or in the
combined planning functions:
Not restri cted
Use the value of a variable in the query
Use a fixed value
Use the value currently defined by the filters in the query
For all non-restricted variables, a popup for value definition comes up when the planning
sequence button is pressed at run time.

Table 2: List of FPM Events for Analytics UIBB Processing

Event ID Description

FPM_SWITCH_QUERY_EVENT Event raised if the query for the Analytics UIBB is exchanged during runtime

FPM_QUERY_CHANGE_EVENT G eneric event raised if anything about the query was changed, for exam ple, characteristics on
rows

FPM_QUERY_FILTER_EVENT Event raised if the filter criteria for the query are adjusted

FPM_QUERY_SORT_EVENT Event raised if the sorting for a characteristic is adjusted

FPM_QUERY_TOTALS_EVENT Event raised if the display of the summary row for a characteristic is adjusted

FPM_QUERY_HIERARCHY_EVENT Event raised if the h ierarchy node and/or th e whole hierarchy should be expanded or collapsed

FPM_QUERY_HIERARCHY_TOOGLE Event raised for enabling/disabling of the hierarchy


FPM_QUERY_HIERARCHY_SELECT Event raised after selection of a new hierarchy for a characteristic

FPM_QUERY_PRESENTATIO N_EVENT Event raised for changin g the presentation (display) of characteri stic values

FPM_QUERY_SELECTION_EVENT Event raised after selection of a cell inside the data grid

FPM_QUERY_VALUE_CHANG E_EVENT Event raised after user changes a value in an edi table query i n the data gri d

In each event, the event parameters FPM_BICS_QUERY_ID  and FPM_BICS_QUERY_INSTANCE_ID  are included to identify for which query and query
instance the event is valid.

  1.2.1.1.4 Generic BICS Search Feeder Class


The generic BICS Search feeder class is used to expose the variables of a BICS (Analytics) query using the FPM Search UIBB.
The generic feeder class CL_FPM_BICS_SEARCH_FEEDER  creates a dynamic configuration based on the defined query or queries.

For more configuration options, the generic feeder class can be sub-classed.
In conjunction with the Analytics or Chart components, the Search component can be configured for more than one query. The variables of the different queries are
merged together; variables from different queries with the same name appear only once in the Search component.
 At runtime, the Search component exposes the variables of the configured queries inside this special Search feeder class. Mandatory variables are marked with
an asterisk, and will create an error if they are not completed. Default values from the query configuration are displayed upon start-up.
The Search UIBB component has one configuration option. The feeder class parameters table allows you to enter multiple combinations of query and query
instance IDs. The instance ID is necessary if, within an ap plication, multiple independent instances of the same query should b e disp layed.

Related Information
Search Component

  1.2.1.1.5 Generic BICS Chart Feeder Class


The generic BICS Chart feeder class is based on the FPM Chart UIBB feeder class.
The generic feeder class CL_FPM_BICS_CHART_FEEDER  creates a dynamic configuration based on the defined query. For more configuration options, the
generic feeder class can be sub-classed.
The Chart component exposes the analytical chart to the application.

Configuration Options in FLUID


For the feeder class of the Chart UIBB component, you can configure the following options in FLUID:
Query and Query Instance ID
The Instance ID is necessary if, within an ap plication, multiple independent instances of the same query should be disp layed.
Execute Automatically
Select this to work with queries containing variables without configuring a selection screen. The display of the chart then triggers the processing of the default
values of the query.
Render Rep ort-Report Interface

Select this to display a button to render any report-to-report navigation.


UI Element Height
For adjusting the height of the analytical chart.
Chart Type
Select a default chart type in the dropdown list. If the selected chart type does not match the data, an internal fallback is applied.

PUBLIC Page 28 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Related Information
Chart Component

  1.2.1.1.6 Generic Analytics Application


FPM provides you with a ready-to-use analytical application. In addition to the Analytics component, it includes Search and Chart components.
This generic application can be used for simple scenarios involving one query only.
The generic application FPM_BICS_OVP  is based on the OVP floorplan, and contains the following analytical elements:
Search component for the supply of variables to the query
 Analytics component for the display and manipulation of query data
Chart component for visuali zation of query data
The generic application exposes one application parameter FPM_BICS_QUERY_ID  in which the name of the query can be specified.
 Additionally, URL parameters can be p assed to pre-fill certain variables. The syntax of these URL parameters is the same as for previous analytical components
(see here for examples).
The generic application uses an application controller to analyze the URL parameters, and to adjust the layout of the application accordingly. If no variables are
found, the Search component is not displayed at all. The application controller is based on class CL_FPM_BICS_APP_CC .

Interaction between the Different Components


Interaction between the various components can be based on the following approaches:
Configuration of Query ID and Query Instance ID
Interaction with the BICS API requires all the components to interact with an instance of IF_BICS_QV . To allow separate UIBBs (like the Analytics and
Chart UIBBs) to read and interact with the same instance of IF_BICS_QV , query instances will be stored in IF_FPM->MO_APP_PARAM  under a key
consists of the query ID and an optional instance key. If a UIBB requires access to a query to read data from it, it must first check if the required instance
already exists in IF_FPM->MO_APP_PARAM . It can only create an instance if it does not already exist there, and it must store the instance in IF_FPM-
>MO_APP_PARAM .
Wiring
Each BICS-based UIBB exposes data using two defined ports; one port for the whole query instance, and one port for the selection data inside the query.
Using these ports, data transfers can be graphically defined with the Graphical Wire Editor in FLUID. To use the selection data port, the receiving UIBB
must have a query ID and an instance ID defined in the configuration. The outports of the Search feeder class are different compared to the outports of the
 Analytics and the Chart feeder classes. In the Search feeder class, two outports for each configured query are available to allow distinct routing of 
information.
The class CL_FPM_BICS_WIRE_ENTITY  is delivered as a connector object class for transporting the selection data and the query instance data over the
wire. The wire processing is enabled in the Analytics UIBB re-usable feeder class as well as in the generic BICS Chart feeder class. To retrieve the
selection criteria, the methods GET_SEARCH_CRITERIA  and GET_SELECTION  of the entity class must be called. The first method returns all variable
values. The second method returns all fixed, dynamic, and current UI filters. All methods return references to IF_FPM_BICS_SELECTION .

Note
 An applic ation can use a mixture of both these approaches. However, we recommend the use of only one approach to limit the effort required for error analysis.

Related Information
Wiring with the Graphical Wire Editor 

  1.2.1.2 Attribute Filter Component

Definition
 A generic design template for visualizing data distributions into individual attribute values. Configured attributes are displayed in a list from which the user can
iteratively select a subset. For each selected attribute, a table is displayed, showing the distinct attribute values together with a hit counter. These ' value tables '
appear in the sequence of the user’s selection. Selection of attribute values can be used as selection criteria for all subsequent value tables.

Use
In contrast to the Search Component that is typically used to query data using specific attribute values known in advance, the Attribute Filter Component is used
for browsing data and its distribution into attribute values. Additionally, it can be used to drill-down data by selecting attribute values in an arbitrary order.

Structure at Runtime
The following screenshot shows how an Attribute Filter component might look at runtime.

PUBLIC Page 29 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Note that the Hit Counter can be disp layed as a percentage bar.
The Attribute Filter retrieves the distinct attribute values in pack ages, for example the first 20 values. In a value table, users c an choose More Values... to
retrieve the next package. An icon is visible in the value table header when the package size is exceeded. Additionally, users can click the header of a value
table to access sort and filter functions.

Editing the Structure at Design Time (FLUID)


You configure this component using the FPM configuration editor, FLUID.
You add extra fields to this component using one of the following methods:
Drag and drop a field from the Repositories panel onto the Attribute Filter UIBB Schema panel
Choose the Add Attribute button in the Attribute Filter UIBB Schema panel
For more information on the attributes of this c omponent in FLUID, c hoose Field Help from the context menu in the system.

Related Information
Interface: IF_ FPM_ GUIBB_ ATTRIBUTE_FILTER

  1.2.1.2.1 Interface: IF_FPM_GUIBB_ATTRIBUTE_FILTER


Description of methods in the interface implemented by the feeder classes of Attribute Filter components.

Table 1: Methods of IF_FPM_GUIBB_ATTRIBUTE_FILTER Interface

GET_DEFINITION:
All ows the feeder class to provide all necessary information for configuri ng an Attribu te Filter component, that is, the list of avail able fil ter attributes and their 
properties.

Parameter Description

EO_FIELD_CATALOG Is of type CL_ABAP_STRUCTDESCR . The components are the available filter attributes.
The Attribute Filter GUIBB supports only flat structures. When using deep structures,
only the highest level fields are available.

ET_FIELD_DESCRIPTION (Optional) Here you can provide additional in formation needed to create the Attribute filter 
component, for example header texts (which shall deviate from the DDIC texts).

ES_OPTIONS (Optional) Here you can adjust properties for the Attribute Filter UIBB, for example,
specify a nam e for accessing the counter colum n in GET_DATA  (for which the default is
COUNT ).

ET_SPECIAL_GROUPS Special groups can be u sed for a grouping feature in FLUID. If th e feeder class provides a
special group table, i t shoul d assign each field in the field description table to a group in
field SP_GROUP . At design-time, the FPM configuration editor groups the fields. This is
an easier way to find fields if your field catalog contains many fields.

GET_PARAMETER_LIST:
Cal led at design time and at run time when the Attribu te Filter component is created. It al lows you to define a li st of the parameters that the feeder clas s su pports.
This li st is u sed by the FPM configur ation editor to provide the inpu t fields for these parameters.

PUBLIC Page 30 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Parameter Description

RT_PARAMETER_DESCR Is returned from th is m ethod. It describes which parameters are possible. In field TYPE ,
the DDIC type needs to be entered.

INI TIAL IZE: Ca lled at design time and at ru ntime when the Attribu te Filter component is created.

Parameter Description

IT_PARAMETER Contains a l ist of the feeder parameters and the valu es for them specified in th e
configuration.

FLUSH:
This method is called whenever an FPM event is triggered (this includes all round trips caused by the Attribute Filter component itself). Since the Attribute Filter 
component has no user inpu t fields, there are no parameters.

PROCESS_EVENT:
Cal led within the FPM event loop. Here the event processing can take place an d this is where the event can be canceled or deferred.

Parameter Description

IO_EVENT The FPM event w hich i s to be processed.

IV_RAISED_BY_OWN_UI Indicates whether the event originates from this UIBB.

ET_MESSAGES  A list of messages which shall be displayed in the message region.

EV_RESULT The result of the event processing. There are 3 possible values:
ev_result = if_fpm_constants=>gc_event_result-OK
ev_result = if_fpm_constants=>gc_event_result-FAILED
ev_result = if_fpm_constants=>gc_event_result-DEFER

BEGIN_PROCESS_BEFORE_OUTPUT:
Called within the FPM event loop during the FPM PROCESS_BEFORE_OUTPUT  event. It marks the beginni ng of the PROCESS_BEFORE_OUTPUT  phase for this UIBB.
Before the end of thi s phas e is i ndicated (by call in g method END_PROCESS_BEFORE_OUTPUT  ) , there can be multiple requ ests of method GET_VALUES for 
indivi dual attribute value retrievals.

Parameter Description

IO_EVENT The FPM event w hich i s to be processed.

IV_RAISED_BY_OWN_UI Indicates whether the event originates from this UIBB.

EV_FORCE_NEW_REQUEST The Attribute Filter component onl y triggers new data retrieval if th e UI state has changed
such that it i s necessary. You can set this fl ag if you want force completely n ew data
retrieval in any case.

CT_SELECTED_ATTRIBUTE Contains th e attributes currently selected at the UI. You can use this parameter to
programmatically change the current selection.

GET_VALUES:
Called within the FPM event loop during the FPM PROCESS_BEFORE_OUTPUT  event whenever i t is n ecessary to newly retrieve attribu te values. S ince the requests
for in divi dual attribu tes may be dependent due to selections.

Parameter Description

IV_NAME Name of th e requested attribute.

IV_MAX_NUMBER_OF_HITS The number of requested distinct values.

IV_SORT_STATE_VALUES The requested sort state for the values. The possible val ues are:
CS_SORT_STATE-NONE : No specific sort state requested.
CS_SORT_STATE-ASCENDING : Ascending sort state requested.
CS_SORT_STATE-NONE : Descending sort state requested.

IV_SORT_STATE_COUNT Same as IV_SORT_STATE_VALUES  but for the counter.

IV_REF_FIELD_NAME Name of the reference field (as given in the field description in method GET_DEFINITION ). If the value is not
initial, the corresponding column of the same name in parameter ET_VALUE must be filled so that, for example,
currency amoun ts can be correctly formatted.

IT_SELECTION_CONDITION Contains the selection conditions of preceding attributes whi ch should be used as selection condition. The table is
deep; it contains a row for each preceding attribute h aving selections carrying th e name an d a table of selected
values.

IR_FILTER_RANGE Contains a range table for the currently requested attribute if the u ser has applied the filter fu nction.

ET_VALUE Contains the result, table of distinct values together with their hit counters and, if necessary, the reference field
values.

EV_TOTAL_VALUES_COUNT The total num ber of distinct values (ignoring parameter IV_MAX_NUMBER_OF_HITS ).

EV_TOTAL_RECORDS_COUNT The total nu mber of records.

Note
With 7.40 SP10, this parameter is of type I. With the next SP, the functionality of the attribute filter will be
extended such that not onl y the total records count but also other m easures (for example, am ounts or 
quantities) can be counted. Therefore, th e integer type is n ot final and wil l be changed to the generic type
SIMPLE.

PUBLIC Page 31 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

EV_KEEP_SELECTION By setting thi s flag you can request that previously selected values stay selected if they are stil l contained in
ET_VALUE .

ET_SELECTED_LINE Can be used to programmatically select values.

END_PROCESS_BEFORE_OUTPUT:
Called within the FPM event loop during the FPM PROCESS_BEFORE_OUTPUT  event. It marks the end of the PROCESS_BEFORE_OUTPUT  phase for this UI BB, that
is, GET_VALUES  is not called again for this event.

Parameter Description

IO_EVENT The FPM event w hich i s to be processed.


IV_RAISED_BY_OWN_UI Indicates whether the event originates from this UIBB.

IT_SELECTION_CONDITION Contains all selection conditions. This information can be used to forward conditions to
dependent UIBBs, for example, a result list displaying the records resulting in the
 Attribute Filter selection.

GET_DEFAULT_CONFIG:
Call this if you want to have a default configuration. Use it to call pre-configured Attribute Filter configurations when a user starts the FPM configuration editor.
This avoids the us er, who us es a feeder class to create an attribute filter, h avin g to create it from scratch.

Parameter Description

IO_LAYOUT_CONFIG Of type IF_FPM_GUIBB_ATTR_FILT_CONFIG : This object provides the API to create a


default configuration.

CHECK_CONFIG:
Cal l thi s if you want to make your own appl ication-specific checks on the configu ration in the FPM Configur ation Editor immediately before savin g.

Parameter Description

IO_LAYOUT_CONFIG Of type IF_FPM_GUIBB_ATTR_FILT_CONFIG : This object provides the API to read


the configuration to be saved.

ET_MESSAGES  A list of messages which shall be displayed in the message region.

  1.2.1.3 Carousel Component


 A generic design template for displaying images within an interactive carousel.

Definition
This component is implemented using the Web Dynpro component FPM_CAROUSEL_UIBB.
The images displayed in this component at runtime are determined by the feeder class assigned to the configuration of the Web Dynpro component
FPM_CAROUSEL_UIBB.
Unlike the other generic user interface building blocks (GUIBBs), this GUIBB requires no definition (in the method GET_DEFINITION  of the feeder class). It is
already defined by the framework. It always has the following attributes:
ID
Image
Tooltip

Implementation Considerations
For this component to be visible in your applications at runtime, your browser must support HTML5.
This component can be viewed in Internet browsers only in Standards Mode. For more information, see UI Control Rendering in Standard s Mode  in the SAP
Help Portal under the Reference section of Developing Web Dynpro ABAP Applications .

Structure at Runtime
The example configuration in the screenshot below shows how a Carousel component may look at runtime. A Form component is being used to show further 
details about the product that is selected in the Carousel component.

PUBLIC Page 32 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Editing the Structure in Design Time (FLUID)


You configure this component using the FPM configuration editor, FLUID. You can change the height and width of the image in the General S ettings panel
Note that there is no Preview panel in FLUID for this GUIBB.

  1.2.1.4 Chart Component


 A generic design template for displaying data in an interactive chart format.

Definition
The Chart component is implemented using the Web Dynpro component FPM_CHART_UIBB .
The information displayed in this component at runtime is determined by the feeder class assigned to the configuration of the Web Dynpro component
FPM_CHART_UIBB . However, the concrete display of the data in this component is determined at configuration of this component in the FPM configuration editor,
FLUID.

Note
The FPM Chart UIBB renders charts on the basis of the Web Dynpro ABAP Chart UI element. This element is exp osed by ABAP c lass CL_WD_CHART . It
can render graphics on the basis of the CVOM (Common Visual Object Model) HTML5 Visualization library. Therefore, for this component to be visible in your 
applications at runtime, your browser must support HTML5. For more information, see UI Control Rendering in Standards Mode , and the documentation
for Chart under User Interface Elements  in the Reference section of the Web Dynpro ABAP documentation in the SAP NetWeaver library. Search also for 
in the

Use
The Chart component offers a large selection of different and highly-configurable graphs, providing you with visual representations of your business data. Charting
features such as resizing, morphing, and transition effects are available with this component. The Chart component also provides you with an out-of-the-box drill-
down feature for interactive analysis.
Personalization of this component at runtime is also possible.

Structure at Runtime
The structure of this component at runtime varies according to chart type. However, the following objects are usually present in all chart types:
Chart
Chart Title
Legend
Chart Toolbar 
The following figure illustrates some of the available chart types:

PUBLIC Page 33 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Figure 1: Example Chart Types

Editing the Structure at Design Time (FLUID)


You configure this component using the FPM configuration editor, FLUID. At design time, the Preview panel in FLUID dis play s the Chart component in
WYSIWYG-li ke style. You can change the chart type, and enable personalization using the relevant fields in the General Settings panel. Settings grouped into
Basic Settings , Plot Area , X-Axis , and Y-Axis are also displayed in this panel; the settings displayed for each are dependent on the chart type.
You add extra fields to this component using one of the following methods:
Drag and drop a field from the Repositories panel onto the Preview panel
Choose the A dd Element button in the Chart UIBB Schema panel
For more information on the attributes of this c omponent in FLUID, c hoose Field Help from the context menu in the system.

Note
In the General Settings panel, under the Fixed Size section, the Height field is set as a default to 100 % to ensure that a Chart component automatically
fills up all available space at runtime. However, if the available space is too small, the Chart component is rendered with a height of 0%, and is no longer 
visible to the user.

Note
To enable the default Height setting of 100% to function correctly, the Chart UIBB attribute Container Stretching must be set to UIBB Needs Surrounding
Containers to be Stretched . Additionally, in the General Settings panel, under the Additional Settings section, the Scroll Mode field must be set to No
Scrollbars . These settings are made automaticall y by FPM when y ou add a Chart UIBB to a floorplan, Tabbed c omponent, or Composite component
configuration. If you change the height of the Chart component to a fixed height, you must remove these settings.

Chart UIBB - Dimensions and Measures


The data and data model behind a chart are defined in the feeder clas s. On configuration level (dynamic or static) Dimens ions and Measures are then defined
on the basis of the given data model:
Dimension
 A range of data. For example, City, Country, Month, Year, and Currency Code could all be considered as Dimensions .
Measure
Data that can be quantified by numbers only.
 A Measure can be always used as a Dimension , but a Dimension cannot always b e converted into a Measure .
The drill-down feature at runtime is achieved by setting the Data Type of the individual Elements of the chart to Dimens ion for Drill down .

Related Information
FPM Chart UIBB: A Data-Model Driven Approach
Interfaces for the Chart UIBB

PUBLIC Page 34 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

  1.2.1.4.1 FPM Chart UIBB: A Data-Model Driven Approach


In Floorplan Manager, charting is done on the basis of a data-model driven approach.
In the data-model driven approach (see following figure), the application developer first chooses (in the feeder class) the table model on which the chart is to be
configured during design time and rendered during the runtime. A simple table model is provided that can be addressed by DDIC table types for example, and
that can be efficiently consumed by the application. Later, a chart type is selected that fits the data provided.
The data model is defined in the GET_DEFINITION  method of the feeder class.

Figure 1: Data-Model Driven Approach in FPM Charting

With this approach, the application developer is never forced to invest in techniques close to the rendering (JSON or Java Script). Instead, he or she stays
focused on the back-end application logic, and the corresponding data retrieval from arbitrary data sources (classic DDIC, In-Memory, Cloud, SOA, ODATA, and
so on).
On configuration level (dynamic or static) dimensions and measures are defined on the basis of the given data model. A dimension is regarded in this context as a
range (for example, City, Country, Month, Year and Currency Code), whereas a measure is understood as something that can be quantified by numbers only. A
measure can be always used as a dimension; a dimension cannot however also be converted always into a measure.
Charting takes place on the basis of one table, where single columns (table fields) are defined either   as a Dimension or   as a Measure . Most of the DDIC
table types can be regarded as a table model. The table model is naturally similar to the data model of the List ATS UIBB.
The data-model driven approach allows for the generation of several chart types on one dataset. For instance, a dataset that is visualized using a Bar Chart can be
also rendered as an Area or Line Chart. Restricting to one Measure , the same dataset can b e rendered as a Pie Chart or Donut Chart, and so on. For more
information, see Chart Types: Minimum Requirements .
For the application developer, the Table Model is an excellent candidate that should be exposed by the FPM APIs, since it can be easily prepared from most of 

the DDIC table types, as the following code shows:


DATA: lt_table TYPE <<DDIC_TABLE_TYPE>>,
  lo_table_descr TYPE REF TO cl_abap_tabledescr.
  lo_table_descr ?= cl_abap_tabledescr=>describe_by_data( lt_table ).

Related Information
Chart Types: Minimum Requirements

  1.2.1.4.2 Chart Types: Minimum Requirements


Floorplan Manager provides you with numerous chart types for configuration. However, the type of chart available at configuration or at personalization is
dependent on the number of fields defined as a measure or dimension (and the values of their axes). The axes in the following table are required by the FPM
runtime to transform data from the table model into a cross-table model representation.

Table 1: Chart Types showing Number of Measures and Dimensions


Chart Type Chart Description Measures Dimensions

  Axis Index Index Axis Index Index

001 Line 1 1 1 1

PUBLIC Page 35 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

002 Bar 1 1 1 1

003 Column 1 1 1 1

004 Pie 1 1 1 1

005 Scatter 1 1 1 1
2 1

006 Combination 1 1 1 1
1 2

007 Donut 1 1 1 1

008 Waterfall 1 1 1 1

009 Box Plot 1 1 1 1


2 1

010 Area 1 1 1 1
2 1

011 Horizontal Area 1 1 1 1


2 1

012 100% Area 1 1 1 1


2 1

014 Stacked Bar 1 1 1 1


2 1

015 Stacked Column 1 1 1 1


2 1

016 100% Stacked Bar 1 1 1 1


2 1

017 100% Stacked Column 1 1 1 1


2 1

018 Dual Bar 1 1 1 1


2 1

019 Dual Column 1 1 1 1


2 1

020 Dual Stacked Bar 1 1 1 1


2 1

021 Dual Stacked Column 1 1 1 1


2 1

022 Dual Percentage Stacked 1 1 1 1

Bar  2 1
023 Dual Percentage Stacked 1 1 1 1
Column 2 1

024 Horizontal Line 1 1 1 1

025 Dual Line 1 1 1 1


2 1

026 Dual Horizontal Line 1 1 1 1


2 1

027 Horizontal Combination 1 1 1 1


2 1

028 Dual Combination 1 1 1 1


2 1

029 Dual Horizontal 1 1 1 1


Combination 2 1

030 3D Column 1 1 1 1
2 1

031 3D Bar 1 1 1 1
2 1

032 Horizontal Waterfall 1 1 1 1

033 Stacked Waterfall 1 1 1 1


2 1

034 Horizontal Stacked Waterfall 1 1 1 1


2 1

035 Horizontal Box Plot 1 1 1 1


2 1

036 Bubble 1 1 1 1
2 1 1 2
3 1

037 Radar 1 1 1 1

038 Tag Cloud 1 1 1 1

039 3D Donut 1 1 1 1

PUBLIC Page 36 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

2 1

040 3D Pie 1 1 1 1
2 1

041 Heat Map 1 1 1 1

042 Tree Map 1 1 1 1

043 Multiple Line 1 1 1 1


2 1

044 Multiple Bar 1 1 1 1


2 1

045 Multiple Column 1 1 1 1


2 1

046 Multiple Pie 1 1 1 1


2 1

047 Multiple Donut 1 1 1 1


2 1

048 Multiple Area 1 1 1 1


2 1

049 Multiple Radar 1 1 1 1


2 1

050 Multiple 3D Donut 1 1 1 1


2 1 2 1

051 Multiple 3D Pie 1 1 1 1


2 1 2 1

052 Multiple Horizontal Line 1 1 1 1


2 1

053 Multiple Horizontal Area 1 1 1 1


2 1

054 Multiple 100% Area 1 1 1 1


2 1

055 Multiple 100% Horizontal 1 1 1 1


 Area 2 1

056 Multiple Stacked Bar 1 1 1 1


2 1

057 Multiple Stacked Column 1 1 1 1


2 1

058 Multiple 100% Stacked Bar 1 1 1 1


2 1

059 Multiple 100% Column 1 1 1 1


2 1

  1.2.1.4.3 Interfaces for the Chart UIBB


Description of the various interfaces and methods used when configuring a Chart component.

IF_FPM_GUIBB_CHART
The data model for the FPM Chart GUIBB can be accessed through the feeder class interface IF_FPM_GUIBB_CHART . This interface includes the interface
IF_FPM_GUIBB . The application developer must implement at least the following methods:
GET_DEFINITION
In this method, the application developer decides on a data model (for example, a Table Model) by calling the appropriate method on the received model
factory instance.
GET_DATA
In this method, the selected data model instance is supplied with the appropriate data.
For a full list of the methods of this interface, see the interface documentation for other GUIBB components.

Model Factory Interfaces


There are two Model Factory interfaces:
IF_FPM_CHART_MODEL_FACTORY
Exposed by the feeder class method IF_FPM_GUIBB_CHART~GET_DEFINITION . Its method GET_TABLE_MODEL  provides an instance on the Table
Model through interface IF_FPM_CHART_TABLE_MODEL .
IF_FPM_CHART_DATA_FACTORY

Exposed by the feeder class method IF_FPM_GUIBB_CHART~GET_DATA . Its method GET_TABLE_MODEL  provides an instance on the Table Model
through interface IF_FPM_CHART_TABLE_DATA .
Both interfaces provide access to the selected data model and are implemented by class CL_FPM_CHART_MODEL_FACTORY .

 
PUBLIC Page 37 of 110
© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Table Mode l Interfaces


In a first version of the Chart UIBB, the Table Model is offered as the only data model of the FPM Chart UIBB. The Table Model can be consumed easily by the
applic ation developer as it can b e derived from any DDIC table type.
There are three Table Model interfaces:
IF_FPM_CHART_TABLE_MODEL
Exposed by the Model Factory interface IF_FPM_CHART_MODEL_FACTORY~GET_TABLE_MODEL . It is typically accessed in the feeder class methods
GET_DEFINITION  and GET_DATA . Its method SET_DEFINITION  defines the Table Model by setting a field catalogue, and field descriptions.
IF_FPM_CHART_TABLE_DATA
Exposed by the Model Factory interface IF_FPM_CHART_DATA_FACTORY~GET_TABLE_MODEL . It is typically accessed in the feeder class methods
GET_DEFINITION  and GET_DATA . Its method SET_DATA  sets the Table Model data.
IF_FPM_CHART_TABLE_SELECTION
Exposed by the event parameter FPM_CHART_SELECTION  of FPM event FPM_CHART_SELECT . It is typically accessed in the feeder class methods
PROCESS_EVENT  and GET_DATA . Its method GET_CURRENT_SELECTION  returns the selected indices from the current round trip.

Using interface IF_FPM_CHART_TABLE_DATA , the application developer sets the current chart data set (method SET_DATA  ). Methods GET_DIMENSIONS
and GET_MEASURES  may be used to enable (respectively, optimize) the selection of data in the feeder class.
 All three interfaces are implemented by the class CL_FPM_CHART_TABLE_MODEL .

Configuration Interface IF_FPM_GUIBB_CHART_CONFIG


The Configuration API IF_FPM_GUIBB_CHART_CONFIG  is derived from the explicit configuration context of Chart UIBB runtime component
FPM_CHART_UIBB . The Configuration API IF_FPM_GUIBB_CHART_CONFIG  can be accessed, for example, through the feeder class interface method
IF_FPM_GUIBB_CHART~GET_DEFAULT_CONFIG . It is used to create pre-configured chart configurations during the FPM design time, as well as complete
dynamic configuration contexts during the FPM runtime .
The Configuration API is implemented by class CL_FPM_GUIBB_CHART_MODEL_CONFIG .

  1.2.1.5 Composite Component

Definition
 A generic design template allowing you to group additional applic ation-specific views (UIBBs) within a single UIBB.
It is implemented using the Web Dynpro component FPM_COMPOSITE_UIBB.
The information displayed in a Composite component at runtime is determined by the individual components within the Composite component.

Use
You use this design template for content layout purposes. Use it when you want to display data in different ways within a single UIBB. For example, you can
display a form, a table and a search component all within one UIBB. You can determine the concrete display of the data in a Composite component when
configuring the Web Dynpro component FPM_COMPOSITE_UIBB.

Note
Composite UIBBs explicitly do not serve Master/Detail purposes.

Structure at Runtime
 A Composite component consists of a number of other components, for example, form components and list components.

Editing the Structure at Design Time (FLUID)


You configure this component using the FPM configuration editor, FLUID.
 Although the Composite component is technically a UIBB, you use it for layout purposes. As such, when you edit this component using FLUID, you see settings
that are usually available only for the floorplan components.
 At design time, the Preview panel in FLUID disp lays the Composite component as a number of placeholders for UIBBs. You can delete the existing
plac eholders or add more of them. You can change the layout of the placeholders us ing the relevant field in the General S ettings panel. In the standard (one-
column) layout, you can add an unlimited number of UIBBs to a composite component.
You add your UIBBs to the placeholders using one of the following methods:
Drag and drop a UIBB from the Repositories panel onto a placeholder 
Choose the Add UIBB button in the Composite UIBB Schema panel
 An individual UIBB can occupy more than a single area within the Composite component. Using the Height , Width , Column , and Row fields of the individual
components, you can determine where to place the components within the Composite component.
The following components cannot be included in a Composite component:
Tabbed component
Launchpad component
Composite component; nesting of composite components is not possible

For more information on the attributes of this c omponent in FLUID, c hoose Field Help from the context menu in the system.

Related Information

PUBLIC Page 38 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Changing the Composite UIBB dynamically at Runtime

  1.2.1.5.1 Changing the Composite UIBB dynamically at Runtime


You may add, remove, and get UIBBs from your Composite UIBB component during runtime.

Context
To do this, proceed as follows:

Procedure
1. Choose an appl ication-spec ific Web Dynp ro component. and add the Web Dynp ro interface IF_FPM_CMPST_CONF_EXIT  to the Implemented
Interfaces tab of your Web D ynpro component. This is one of the Web Dynp ro components that provide you with a child UIBB.
2. Save and activate the newly added interface.
3. In the component controller, imp lement the method OVERRIDE_CONFIG_COMPOSITE .
 Alternatively, you can choose to use a class-interface instead of a Web Dynpro interface. The class interface is IF_FPM_COMPOSITE_CONF_EXIT .

  1.2.1.6 Form Component

Definition
 A generic design template for displaying data in a form.
It is implemented using the Web Dynpro component FPM_FORM_UIBB.
The information displayed in a form at runtime is determined by the feeder class assigned to the configuration of the Web Dynpro component FPM_FORM_UIBB.

Use
You use this design template when you want to display data using a form. You can determine the concrete display of the data in a form when configuring the Web
Dynpro component FPM_FORM_UIBB.

Note
This component is superseded by the Form GL2 Component.

Structure at Runtime
 A form consists of fields and corresponding field labels. Fields may be grouped together. Forms may also contain toolbars.

Editing the Structure at Design Time (FLUID)


You configure this component using the FPM Configuration Editor.
 At design time, the Preview panel in FLUID disp lays the Form component in WYSIWYG-like style. You can change the layout of the form using the relevant field
in the General Settings panel.
 A form is composed of various objects:
Element
Elements are descriptor/field combinations that can be configured for the display type of the field or descriptors.
Melting Group
 A melting group is a group of multiple fields.

Toolbar 
Contains buttons that can have actions assigned to them and can be executed in the form.
Group
 A group consists of elements, melting groups, and toolbars. You can enter a separate name and group type for each group. The following group types are
possible:
Full screen width with 1 column
Full screen width with 2 columns
Half screen width with 1 column

Note
Only one element or melting group c an be dis played p er line in a column.

Note
The information that can be displayed on a form is determined by the feeder class assigned to the configuration of the Web Dynpro component
FPM_FORM_UIBB .

You add extra fields to this component using one of the following methods:
Drag and drop a field from the Repositories panel onto the Preview panel
Choose the Add Element or Add Child Element buttons in the Form UIBB Schema panel
For more information on the attributes of this c omponent in FLUID, c hoose Field Help from the context menu in the system.

PUBLIC Page 39 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Related Information
Using the CHECKBOX_G ROUP Disp lay Type in a Form
Interface: IF_FPM_G UIBB_FO RM
Form GL2 Component
Melting Groups

 The1.2.1.6.1 Using the CHECKBOX_GROUP Display Type in a Form


Form component contains fields with a disp lay type CHECKBOX_ GRO UP . In contrast to the other display typ es, the application must consider making
some amendments to ensure the desired functionality.
To use this field to its full extent, the application must consider the following points:
The field type must be of type Character , and the field length must be at least the number of checkb oxes that you want to display .
The values of the checkboxes must be set as fixed values for the field.
In the GET_DATA  method, use an X to indicate that a checkbox should be checked at runtime, and a space to indicate that it should not be. For example, you
want three checkboxes to be displayed at runtime, with all three checked. In GET_DATA , this should be written as XXX. If you wanted the second checkbox un-
checked, it would be written as X_X.
With a checkbox field, you can do the following:
Set default values for a checkbox field.
Use the FLUSH  method to get the data from the field, and the change log.
Check the Index of the field to determine whether it is checked (Checked = X, Unchecked = "" (sp ace).

Field Length
The field length must be at least the number of checkboxes that you want to display.

Example
You have a field length of 5, and 5 fixed values. Let us presume all are marked with an X. Within the FLUSH  method, this field of the structure will be updated
XXXXX. Now, let us assume that the fourth field is not marked. Within the FLUSH  method, this field of the structure will be updated XXX_X.

  1.2.1.6.2 Interface: IF_FPM_GUIBB_FORM


Description of methods in the interface implemented by the feeder classes of both types of Form components.

Table 1: Methods of IF_FPM_GUIBB_FORM Interface

GET_DEFINITION:
Allows the feeder class to provide all necessary information for configuring a form: the list of available fields and their properties, and the list of actions (FPM
events).

Parameter Description

EO_FIELD_CATALOG Is of type CL_ABAP_STRUCTDESCR . The components of thi s object are the available
fields. The sim plest way to provide a field catalog is to create a flat DDIC stru cture
containing all fields, and then get the field catalog using eo_field_catalog ?=
CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_NAME(<NAME>) .
The Form GUIBB supports only flat structures. When using deep structures, only the
highest level fields are available.

ET_FIELD_DESCRIPTION Here you can provide the additional inform ation needed to create the form, for example
Label_by_DDIC , LABEL_REF .

ET_ACTION_DEFINITION  A list of all actions (which will be transformed to FPM events at runtime) that you can
assign to Form elements.

ET_SPECIAL_GROUPS Here you have the same options that you have in the ABAP ALV (see function module
REUSE_ALV_GRID_DISPLAY ) to group the fields within your field catalogue. You must
enter the Special Group for each field in the Field Description table in field SP_GROUP .
 At design-time, the FPM configuration editor groups the fields. This is an easier way to
find fields if your field catalogue contains many fields.

GET_PARAMETER_LIST:
Cal led at design time and all ows you to defin e a li st of the parameters that the feeder class supports. Thi s li st is u sed by the FPM configu ration editor to provide the
in put fields for these parameters.

Parameter Description

RT_PARAMETER_DESCR Is returned from this method. It describes which parameter is possible. In Field TYPE ,
the DDIC type needs to be entered.

INITIALIZE:
Cal led at run time when the form is created. I t is the first feeder method which i s call ed from FPM .

Parameter Description

IT_PARAMETER Contains a l ist of the feeder class parameters and the values for th em specified in the
configuration.

FLUSH:
The first feeder method which is called during an event loop. Whenever an FPM event is triggered (this includes all round trips caused by the form itself) this

PUBLIC Page 40 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

method is called. Use it to forward changed form data to other components in the same application.

Parameter Description

IT_CHANGE_LOG Lists all changes made by the user.

IS_DATA Is a structure containin g the changed data.

PROCESS_EVENT:
Called within the FPM event loop, it forwards the FPM PROCESS_EVENT  to the feeder clas s. Here the event processing can take place and this is where the event
can be canceled or deferred.

Parameter Description

IO_EVENT The FPM event w hich i s to be processed.

EV_RESULT The result of the event processing. There are 3 possible values:
ev_result = if_fpm_constants=>gc_event_result-OK
ev_result = if_fpm_constants=>gc_event_result-FAILED
ev_result = if_fpm_constants=>gc_event_result-DEFER

IV_RAISED_BY_OWN_UI Indicates whether the event originates from this UIBB.

ET_MESSAGES  A list of messages which shall be displayed in the message region.

GET_DATA:
Called within the FPM event loop and forwards the FPM PROCESS_BEFORE_OUTPUT  event to the feeder class. Here you specify the form data after the event has
been processed.

Parameter Description

IO_EVENT The FPM event w hich i s to be processed.

IO_EXTENDED_CTRL Request focus on action or field.

IV_RAISED_BY_OWN_UI Indicates whether the event originates from this UIBB.

IV_EDIT_MODE The OVP edit mode state of the UIBB.

IT_SELECTED_FIELDS The list of fiel ds necessary for the form rendering. Provide only the data for the fields
listed in this table; all other fields are neither visible at runtime nor used as reference for 
visible fields.

ET_MESSAGES  A list of messages which shall be displayed in the message area.

EV_DATA_CHANGED For performance reasons, the GUIBB adjusts the data in the form only if the data has
been changed. To indi cate this, set this flag whenever you change the data to be
displayed within this feeder.

EV_FIELD_USAGE_CHANGED Indicates whether or not the field usage has been changed by this m ethod. If you change

the field usage without setting this flag to X, your changes are ignored.
EV_ACTION_USAGE_CHANGD Indicates wh ether or not th e action u sage has been changed. Use an X to in dicate
whether you changed the action u sage. If you do not, your changes are ignored.

CS_DATA The form data to be changed.

CT_FIELD_USAGE Field usage to change. The field usage consists of the field attributes wh ich m ight change
at runtime (for example, enabled, and visible). Note that if you change the fixed values of 
a field, set the flag FIXED_VALUES_CHANGED for this field.

CT_ACTION_USAGE  Action usage to change. The action usage consists of the attributes related to actions
which might change at runtime. For example, visibility. If an action is rendered as a
button, then the visibility setting of the button is defined here.

GET_DEFAULT_CONFIG:
Call this if you want to have a default configuration. Use it to call pre-configured form configurations when a user starts the FPM configuration editor. This avoids
the user, who uses a feeder class to create a form, hav ing to create it from the beginn ing.

Parameter Description
IO_LAYOUT_CONFIG Of type IF_FPM_GUIBB_FORM_CONFIG : This object provides the API to create a
default configuration for the “old” Form, is not used in FPM_FORM_UIBB_GL2 .

IO_LAYOUT_CONFIG_GL2 Of type IF_FPM_GUIBB_FORM_CFG_GL2 : This object provides the API to create a


default.

CHECK_CONFIG:
Cal l thi s if you want to make your own appl ication-specific checks on the configu ration in the FPM confi guration editor i mmediately before savin g.

Parameter Description

IO_LAYOUT_CONFIG Of type IF_FPM_GUIBB_FORM_CONFIG : This object provides the API to r ead the
configuration to be saved for the “old” Form, is not used in FPM_FORM_UIBB_GL2 .

ET_MESSAGES  A list of messages which shall be displayed in the message region.

IO_LAYOUT_CONFIG_GL2 Of type IF_FPM_GUIBB_FORM_CFG_GL2 : This object provides the API to r ead the

configuration to be saved.

  1.2.1.7 Form GL2 Component

PUBLIC Page 41 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Definition
 A generic design template for displaying data in a form.
It is implemented using the Web Dynpro component FPM_FORM_UIBB_GL2 .
The information displayed in a form at runtime is determined by the feeder class assigned to the configuration of the Web Dynpro component
FPM_FORM_UIBB_GL2 .

Note
Use the Form GL2 component to ensure that your applications comply with the most recent SAP user interface guidelines; the original form component,
implemented using the Web Dynpro component FPM_FORM_UIBB  is, however, still available.

Use
You use this design template when you want to display data using a form. You can determine the concrete display of the data in a form when configuring the Web
Dynpro component FPM_FORM_UIBB_GL2 .

Structure at Runtime
 A form consists of fields and corresponding field labels. Fields may be grouped together. Forms may also contain toolbars.

Editing the Structure at Design Time (FLUID)


You configure this component using the FPM configuration editor, FLUID.
 At design time, the Preview panel in FLUID disp lays the Form component in WYSIWYG-like style. A grid enables you to place elements (fields, label, toolbars,
and so on) accurately ins ide your form. You can change the layout of the form using the relevant field in the General S ettings panel.
 A form is comprised of various sub-objects:
Standard Element
Elements are descriptor/field combinations that can be configured for the display type of the field or descriptors
Toolbar (Button Row)
Contains buttons that can have actions assigned to them, and can be executed in the form
Button
 A single button that can have actions assigned to it, and can be executed in the form
Group
 A group consists of group elements, and group toolbars. You can enter a separate name for each group. A group of elements is confined to one panel only
in a 16/2 layout of a Form GL2 component.
Group Element
Same structure as the standard element
Group Button Row
Button Row with the same structure as the Button Row (Toolbar)
Group Button
Button element with the same structure as the Button
You add extra fields to this component using one of the following methods:
Drag and drop a field from the Repositories panel onto the Preview panel
Choose the Add Element button in the Form UIBB Schema panel
For more information on the attributes of this c omponent in FLUID, c hoose Field Help from the context menu in the system.

Related Information
Melting Groups

  1.2.1.8 Form Repeater Component


Definition
 A generic design template for displaying data in a repeating form layout.
Depending on the application, individual forms may be expanded to display further form fields, but only one form at a time may be in its expanded state. The
fields displayed in this expanded version of the data are not necessarily displayed in a form format but can actually be displayed in another format such as a
table or list or even a Composite component. A separate UIBB configuration, known as the Swap UIBB , disp lays the exp anded version of the form data.
This component is implemented using the Web Dynpro component FPM_FORM_REPEATER_UIBB.
The information displayed in this component at runtime is determined by the feeder class assigned to the configuration of the Web Dynpro component
FPM_FORM_REPEATER_UIBB.

Use
You use this design template when you want to display data using a form. You can determine the concrete display of the data in this component when configuring
the Web Dynpro component FPM_FORM_REPEATER_UIBB.

 
PUBLIC Page 42 of 110
© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Structure at Runtime
The screenshot below shows how a Form Repeater component may look at runtime. Note that the third form has been expanded to show more fields.

Figu re 1: F orm Repeater Component us ing Swap C omponent

Each form displays a different data-set or record, and individual forms are, optionally, divided by separators.
Each form in a Form Repeater component has a structure identical to the Form GL2 component. However, the expanded version of the data may be displayed in
a format other than a form, for example in a list format.
Forms may be grouped together but only one level of grouping is available.
 Any action buttons that appear at runtime are defined in the relevant feeder class.

Editing the Structure at Design Time (FLUID)


You configure this component using the FPM configuration editor, FLUID.
 At design time, the Preview panel in FLUID disp lays the Form Repeater component in WYSIWYG-like style. A grid enables you to place elements (fields,
label , toolbars , and so on) accurately ins ide your form. You can change the layout of the form using the relevant field in the General Settings panel.

Note
The Preview panel dis play s only the main form of the Form Repeater component. The extra fields that appear in the expanded version belong to another 
component (that is the Swap UIBB ). To see the fields of the Swap UIBB inside the Preview panel, take note of the Web Dynp ro Component and
Configuration ID of the Swap UIBB, and open FLUID for this comp onent configuration.

You add extra fields to this component using one of the following methods:
Drag and drop a field from the Repositories panel onto the Preview panel
Choose the A dd Element button in the Form Repeater UIBB Schema panel
 Additionally, FLUID provides you with the following elements:
 Add Swap UIBB button allows you to change the Swap UIBB for a new one.
Group Field , in the General Settings panel, allows you to group the individual forms at runtime by a single field.
If no value is specified in the Row Count field, all data records of the form are displ ayed one below the other. Entering a value larger than zero activates a
paginator, enabling you to view records by selecting particular pages rather than by scrolling.
For more information on the attributes of this c omponent in FLUID, c hoose Field Help from the context menu in the system.

Further Notes on the Swap UIBB


The toolbar of the Form Repeater UIBB Schema contains the button Add Swap UIBB . This allows you to add another UIBB that is configured to disp lay extra
fields at runtime, and that can be exchanged for the Form Repeater UIBB temporarily. The Swap UIBB is a separate UIBB configuration and may be of any UIBB
type, for example, it may be a configuration of FPM_LIST_UIBB. At runtime, the user may, for exampl e, choose a Details or Expand button attached to a

PUBLIC Page 43 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

  _ _
particular form to see extra fields. The data and its layout that is displayed is provided by the UIBB configuration that is chosen as the Swap UIBB.
The Attributes panel may contain the Swap Events table that displays a l ist of events triggering the swapping of the Swap UIBB with the original form
component. These events are defined in the relevant feeder class. Swap events comprise the following:
 An FPM Event ID
 A Swap Type which defines whether the event invokes or hides the Swap UIBB
 An Event Condition which defines whether only the UIBB events, events of the Swap UIBB or any events are taken into account
For example, a row action of the Form Repeater feeder class can be configured as a Swap-In event, so that an Expand link in each repeating unit triggers its
representation to be replaced by a Form UIBB displaying an extended representation of the entity, that is, showing more fields. An action of the Form feeder class
can then be configured as a Swap-O ut event so that a Collapse link triggers a return from the Form UIBB representation by the repeating unit of the Form
Repeater.

Related Information
Paging Mechanism for Fast Data Retrieval
Interface: IF_FPM_GUIBB_FORM_REPEATER
Melting Groups

  1.2.1.8.1 Paging Mechanism for Fast Data Retrieval


If an application has to retrieve and display a very large amount of records (tens of thousands for example) in an FPM GUIBB, performance problems are very
likely to occur if all the data is loaded at once. The paging mechanism offered by FPM prevents this.
The Form Repeater GUIBB offers a paging mechanism; a feature by which only that data that is currently visible on the UI, is requested from the application by
the FPM runtime, and only that data is transferred from the backend to the UI. This results in both a much lower memory consumption and shorter response times.

Paging Interface
To use the paging mechanism in the Form Repeater GUIBB, the feeder class must do the following:
Implement the paging interface IF_FPM_GUIBB_FORM_REP_PAGING
Return the value X in the implementation of the interface method IS_ACTIVE
Set the number of visible lines, per Form Repeater page, to a value larger than 0 in the Form Repeater configuration
You can find details of all methods and parameters of this interface in the system.

Note
The standard feeder methods of interface IF_FPM_GUIBB_FORM_REPEATER  are still called when paging is active, except for method GET_DATA  which is
replaced b y method PROCESS_BEFORE_OUTPUT  of the paging interface.

  1.2.1.8.2 Interface: IF_FPM_GUIBB_FORM_REPEATER


Description of methods in the interface implemented by the feeder classes of Form Repeater components.

Table 1: Methods of IF_FPM_GUIBB_FORM_REPEATER Interface

GET_DEFINITION:
All ows the feeder class to provide all necessary information for configuri ng a F orm Repeater component: the list of avail able fields and their properties, an d the list
of actions (FPM events).

Parameter Description

EO_FIELD_CATALOG Is of type CL_ABAP_TABLEDESCR  table, and must describe an index table with a
structured lin e type. The components of the table are the available fields. .
The Form Repeater GUIBB supports only flat structures. When using deep structures,
only the highest level fields are available.

ET_FIELD_DESCRIPTION Here you can provide the additional inform ation needed to create the Form Repeater 
component, for example label texts, read-only properties, F4 hel ps.

ET_ACTION_DEFINITION  A list of all actions (which will be transformed to FPM events at runtime) that you can
assign to Form Repeater elements as field events, or in an OVP toolbar if the action is
marked as exposable.

ET_ROW_ACTION  A list of all row actions (which will be transformed to FPM events at runtime) that you
can assign to buttons or links. The visibility and enablement of row actions can be
controlled i ndex-specifically.

ET_SPECIAL_GROUP Special groups can be u sed for a grouping feature in FLUID. If th e feeder class provides a
special group table it sh ould assign each field in the field description table to a group in
field SP_GROUP  . At design-time, the FPM configuration editor groups the fields. This is
an easier way to find fields if your field catalogue contains many fields.

GET_PARAMETER_LIST:
Cal led at design time and at r untime when the Form Repeater component is created. It al lows you to defin e a l ist of the parameters that the feeder class supports.
This li st is u sed by the FPM configur ation editor to provide the inpu t fields for these parameters.

Parameter Description
RT_PARAMETER_DESCR Is returned from this method. It describes which parameter is possible. In Field TYPE ,
the DDIC type needs to be entered.

INITIALIZE:

PUBLIC Page 44 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Called at design time and at runtime when the Form Repeater component is created.

Parameter Description

IT_PARAMETER Contains a l ist of the feeder class parameters and the values for th em specified in the
configuration.

FLUSH:
This method is call ed whenever an F PM event is triggered (this i nclu des all round trips cau sed by the Form Repeater component itself). Use it to forward chan ged
form repeater data to other components in the same application.

Parameter Description
IT_CHANGE_LOG Lists all changes made by the user.

IS_DATA Is a table containin g the changed data.

PROCESS_EVENT:
Cal led within the FPM event loop. Here the event processing can take place an d this is where the event can be canceled or deferred.

Parameter Description

IO_EVENT The FPM event w hich i s to be processed.

EV_RESULT The result of the event processing. There are 3 possible values:
ev_result = if_fpm_constants=>gc_event_result-OK
ev_result = if_fpm_constants=>gc_event_result-FAILED
ev_result = if_fpm_constants=>gc_event_result-DEFER

IV_RAISED_BY_OWN_UI Indicates whether the event originates from this UIBB.

ET_MESSAGES  A list of messages which shall be displayed in the message region.

GET_DATA:
Cal led withi n the FP M event loop. Here you specify the form repeater data after the event ha s been processed.

Parameter Description

IO_EVENT The FPM event w hich i s to be processed.

IO_EXTENDED_CTRL Of type IF_FPM_FORM_REPEATER_EXT_CTRL : An extended control i nterface for 


special i nteraction between th e feeder class and the U IBB. As read-only vari ables, it
provides information of the assigned Swap UIBB key, the current swap index (0 if the
swap UIBB is not active), and the enabled state of the Form Repeater UIBB, and for 
which fi eld grouping is configured. If grouping, the feeder class shoul d sort the data by
the Group field. The methods of the interface allow to set the entire Form Repeater 
(except a Swap UIBB) enabled or disabled. It is also possible to change the in dex of the
Swap UIBB, except that it is not allowed to switch from index zero (Swap UIBB not
active) to a non-zero index (Swap UIBB active).
IV_RAISED_BY_OWN_UI Indicates whether the event originates from this UIBB.

IV_EDIT_MODE The OVP edit mode state of the UIBB.

IT_SELECTED_FIELDS The list of fiel ds necessary for the form rendering. Provide only the data for the fields
listed in this table; all other fields are neither visible at runtime nor used as reference for 
visible fields.

ET_MESSAGES  A list of messages which shall be displayed in the message area.

EV_DATA_CHANGED For performance reasons, the GUIBB adjusts the data in the form repeater only if the
data has been changed. You mu st set this flag whenever you change the parameter 
CT_DATA .

EV_FIELD_USAGE_CHANGED Indicates whether or not the field usage has been changed by this m ethod. If you change
the field usage without setting this flag to X, your changes are ignored.

EV_ACTION_USAGE_CHANGD Indicates wh ether or not th e action u sage has been changed. Use an X to in dicate
whether you changed the action u sage. If you do not, your changes are ignored.
CS_DATA The form repeater data to be changed.

CT_FIELD_USAGE Field usage to change. The field usage consists of the field attributes wh ich m ight change
at runtime (for example, enabled, and visible). Note that if you change the fixed values of 
a field, set the flag FIXED_VALUES_CHANGED for this field.

CT_ACTION_USAGE  Action usage to change. The action usage consists of the attributes related to actions
which might change at runtime. For example, visibility. If an action is rendered as a
button, then the visibility setting of the button is defined here.

GET_DEFAULT_CONFIG:
Call this if you want to have a default configuration. Use it to call pre-configured form configurations when a user starts the FPM configuration editor. This avoids
the user, who uses a feeder class to create a form, hav ing to create it from the beginn ing.

Parameter Description

IO_LAYOUT_CONFIG Of type IF_FPM_GUIBB_FORM_REPEATER_CFG : This object provides the API to create


a default configuration.

CHECK_CONFIG:
Cal l thi s if you want to make your own appl ication-specific checks on the configu ration in the FPM confi guration editor i mmediately before savin g.

PUBLIC Page 45 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Parameter Description

IO_LAYOUT_CONFIG Of type IF_FPM_GUIBB_FORM_REPEATER_CFG : This object provides the API to read


the configuration to be saved.

ET_MESSAGES  A list of messages which shall be displayed in the message region.

  1.2.1.9 Hierarchical List (Tree) Component

Definition
 A generic design template for displaying data in a hierarchical list (also known as a Tree). A hierarchical list is a list of items arranged on interdependent
successive levels. Certain items in a hierarchical list are associated with nodes that may be expanded to display further lists below them. Each item in a lower 
level list has a parent/child relationship with the item in the higher level list whose node was expanded.
It is implemented using the Web Dynpro component FPM_TREE_UIBB.
The information displayed in a Hierarchical List component at runtime is determined by the feeder class assigned to the configuration of the Web Dynpro
component FPM_TREE_UIBB.

Note
From SAP NetWeaver 7.31 SP4 onwards, this component uses the Web Dynpro ABAP C-Table (Client Table) for displaying the data in a list (which the List
 ATS component also uses). The main advantages include better client-side rendering, and smooth horizontal and vertical scrolling. It also features an
integrated personalization dialogue box, and new configuration features in the General S ettings panel. All new configurations of this component automaticall y
use the C-Table. Previously made configurations are not updated with the C-Table. New component configurations still use the same feeder classes as were
previously used for this component.

Use
You use this design template when you want to display data in a hierarchical list format. You can determine the concrete display of the data in a Hierarchical List
component when configuring the Web Dynpro component FPM_TREE_UIBB.

Structure at Runtime
 A Hierarchical List component is display ed as a table of rows and columns at runtime. Each item in a list is displayed in a separate row. Items are grouped
together under nodes. A list has its own toolbar.
Each column of the list has a column header. If the application has enabled list functions such as sorting, filtering, and grouping, an arrow appears in the bottom-
right corner of the column header when you hover the mouse over the heading at runtime. The available menu options are determined by the relevant feeder class.

List components may contain an action column containing several one-click action controls.
The following figures illustrates what a Hierarchical (Tree) component might look like at runtime:

PUBLIC Page 46 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Figure 1: Hierarchical List Component at Runtime

If the application has enabled sorting, a small arrow appears in the bottom-right corner of the column heading at runtime allowing you to perform this function.
Hierarchical list components may contain an action column containing several one-click action controls.

Editing the Structure at Design Time (FLUID)


You configure this component using the FPM configuration editor, FLUID.
 At design time, the Preview panel in FLUID disp lays the Hierarchical List component in a WYSIWYG style.
In the General Settings panel, you can specify settings applicable to the list as a whole.
In the Tree UIBB Schema , you can spec ify attributes for the individual el ements of the list and add or remove columns.
 A Hierarchical List has the following properties:
Master Column
The master column displays all the items in a list. When the system first displays the list, each top-level, parent item in the master column is preceded by
an Expand or Collapse icon, which allows you to see the child (sub ) items contained within it. A top-level item in the master column with no child items has
no Expand or Collapse icon preceding it.
The master column is always v isible and is always dis played as the first column in a table.
Incremental Loading
The Hierarchical List component permits incremental loading of data, meaning that data relating to sub-lists can be loaded into the application only when the

node is expanded.
For more information on the attributes of this c omponent in FLUID, c hoose Field Help from the context menus in the sys tem.

Related Information
FPM Events and the Hierarchical List Component
Interface: IF_FPM_GUIBB_TREE
Enabling the Search Feature in the Tree Component

  1.2.1.9.1 FPM Events and the Hierarchical List Component


The Hierarchical List (Tree) component, being an FPM UIBB, takes part, when it is visible, in each FPM event loop. The Tree component may also raise FPM
events itself from several sources.
These events are raised from the following sources:

Cell events
The columns may contain fields with a display type that is capable of raising an event (for example, a Button display typ e). All cell-based events have
the FPM event ID IF_FPM_GUIBB_TREE=>GC_GUIBB_TREE_ON_CELL_ACTION . The corresponding row and column values are added as event
parameters to this FPM event as follows:
IF_FPM_GUIBB_TREE=>GC_EVENT_PAR_ROW

PUBLIC Page 47 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

IF_FPM_GUIBB_TREE=>GC_EVENT_PAR_COLUMN_NAME
Toolbar events
 Almost each toolbar element may raise an FPM event. In this case, the event ID is the action ID (which is defined by the feeder class in method
GET_DEFINITION ). To get user input values from elements such as a toggle button, input field, or dropdown list box, you can use the following FPM
event parameters:
IF_FPM_GUIBB_TREE=>GC_EVENT_PAR_TOGGLE_STATE
IF_FPM_GUIBB_TREE>GC_EVENT_PAR_INPUT_VALUE
IF_FPM_GUIBB_TREE=>GC_EVENT_PAR_DROP_DOWN_KEY

Note
There is a default button set in the toolbar for applications. This button set contains two buttons, Expand All  and Collapse All , which control the
display content of the tree nodes. Once the default button set is configured, the application itself must handle the event IDs of these buttons in the feeder 
class.

Selection events
 A row selection may also raise an FPM event. It is possible to choose whether only a lead selection, or a normal selection raises an FPM event. For more
information, see the system documentation in FLUID).
Sorting Event:
It is possible sort the Tree UIBB. However, the FPM framework provides only the handle for the sort event triggered on the UI by a user. As a result, an FPM
event is triggered which can then be handled in the respective feeder class. Information such as the feeder class, the direction of the sort, and the column
which is sorted are available as event parameters. The actual sorting of the data must be handled in the feeder class itself. Note that the master column of 
the Tree UIBB is not available for sorting. Sorting can be activated only for the other columns in the Tree. Additionally, sorting needs to be activated by the
feeder class ( in the GET_DEFINITION  method). The FPM event ID which is raised for sorting is FPM_SORT_TREE_COLUMN .
Sorting with the New C-Table:
The feeder class, using method GET_DEFINITION , parameter FIELD_DESCRIPTION , and attribute ALLOW_SORT , determines which columns are
available for sorting.
There are two attributes in method GET_DEFINITION , parameter ES_OPTIONS :
ALLOW_MULTI_COL_SORT
When this attribute is set to TRUE, the personalization dialog box enables the user to sort according to more than one column. It is recommended to set
this attribute to TRUE although the default is FALSE (for compatibility reasons).
ALLOW_SORT_PERSONALIZATION
When this attribute is set to TRUE, the Personalization dialog box display s a Sorting tab. The recommended value is also TRUE.
Whether the sort feature is availab le or not is also determined by the configuration ( General Settings panel in FLUID). Sorting is availab le only when
the feeder class, and  the c onfiguration, allow it.
 At runtime, when a user triggers sorting, the following FPM event is raised: IF_FPM_GUIBB_TREE=>GC_EVENT_APPLY_RULES . The feeder class
retrieves the current sort rule in the feeder class method GET_DATA . The parameter, IO_SERVICE_INFO , of type
IF_FPM_TREE_SERVICE_INFO . Note that sort rules can be pers isted by us ing the Personalization dialog box. That means that, even at startup,
it is possible that sort rules already exist; this makes it necessary to use parameter IO_SERVICE_INFO  to check for this first.
One-Click Actions
One-click actions are available in this component. For more information on one-click actions, see the section on the List ATS Component.

Personalization Dialog Box


This is available only to components that are created in SAP NetWeaver 7.03/7.31 SP4 onwards (which use the WD ABAP C-Table). For more information,
see the documentation under this heading under the List ATS Component. However, note that this dialog box contains a restricted set of features for the
Hierarchical List Component.

  1.2.1.9.2 Interface: IF_FPM_GUIBB_TREE


Table 1: Methods of IF_FPM_GUIBB_TREE Interface

GET_DEFINITION:
All ows the feeder class to provide all necessary information for configuri ng a Tr ee component: the list of avail able fields and their properties, an d the list of actions
(FP M events).

Parameter Description

EO_FIELD_CATALOG Is of type CL_ABAP_TABLEDESCR  table. The components of the table are the available
fields. The sim plest way to provide a field catalog is to create a flat DDIC stru cture
containi ng all th e fields and then get the field catalog using the foll owing construct:
eo_field_catalog ?= CL_ABAP_TABLEDESCR=>describe_by_name(
<name>)
The Tree GUIBB supports only flat structures. When using deep structures, only the
highest level fields are available.

ET_FIELD_DESCRIPTION This mandatory parameter is used to inform FPM which fields from the field catalog are
to be used for wh ich purpose in th e Tree component. This is achieved with th e help of the
field COLUMN_TYPE  (see note and table below).
The ET_FIELD_DESCRIPTION  parameter can also be used to provide additional
properties for various columns:
LABEL_BY_DDIC
Indicates whether a column header text should be taken from DDIC or not
Search helps
DDIC, OVS, and freestyle search help
HEADER_TEXT_WRAPPING
Determines whether the column header text shall be wrapped or not
 Attributes for read-only, mandatory, enabled and visibility
 Attributes for enabling filtering and sorting, for formatting amongst others

ET_ACTION_DEFINITION  A list of all actions (which will be transformed to FPM events at runtime) that you can
assign to the Tree elements.

PUBLIC Page 48 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

ET_SPECIAL_GROUPS This provides you with the same options that you have in the ABAP ALV (see function
module REUSE_ALV_GRID_DISPLAY ) to group the fields withi n your field catalog. You
mu st enter the special group for each field in the field description table in fiel d
SP_GROUP  . At design-time, the FPM configuration editor groups the fields together,
providing you with an easier method for finding fields.

COLUMN_TYPE
To create a hierarchical list (tree), you must establish the hierarchical relationship between records using the application data. To do this, the fields in the following
table are required. This information is passed in the GET_DEFINITION  method of the feeder class. From the field catalog provided in this method, you must

select the fields which you want to use to determine the hierarchy. The field COLUMN_TYPE  in the ET_FIELD_DESCRIPTION  is used to provide this
information. The following table explains the various column types:

Table 2: Values for COLUMN_TYPE Field

COLUMN_TYPE Value Explanation Optional or Mandatory Data Type

Parent Key This column of a table contains the parent Mandatory Any
element in the hierarchy at any level.

Row Key This column of a table contains the Mandatory Any


row/child element in the hierarchy at any
level.

Expanded This column of the table determines Mandatory Boolean


whether the parent node is expanded or not.

Is Leaf This column of the table determines Optional Boolean


whether the element is the last node in the
hierarchy.

Children Loaded This column helps in stopping a backend Optional Boolean


call every time th e same node is opened.

Text This column determines the text which Optional String


needs to be rendered on th e UI for the tr ee
column.

Image This column contains the string for an icon Optional String
if you want to display one in the master 
column.

GET_PARAMETER_LIST:
This method is call ed at design time and all ows you to define a l ist of the parameters that the feeder class su pports. Thi s li st is u sed by the FPM Configur ation
Editor to provide the input fields for these parameters.

Parameter Description

RT_PARAMETER_DESCR Is returned from this method. It describes which parameter is possible. In Field TYPE ,
the DDIC type needs to be entered.

INITIALIZE:
Called at runtime when the Tree component is created.

Parameter Description

IT_PARAMETER Contains a l ist of the feeder class parameters and the values for th em specified in the
configuration.

FLUSH:
This method is call ed whenever an F PM event is triggered (this i nclu des all round trips cau sed by the Tree component itself). Use it to forward changed Tree data
to other components in the same application.

Parameter Description

IT_CHANGE_LOG Lists all changes made by the user.

IS_DATA  A structure containing the changed data.

PROCESS_EVENT:
Cal led within the FPM event loop. Here the event processing can take place an d this is where the event can be canceled or deferred.

Parameter Description

IO_EVENT The FPM event w hich i s to be processed.

EV_RESULT The result of the event processing. There are 3 possible values:
ev_result = if_fpm_constants=>gc_event_result-OK
ev_result = if_fpm_constants=>gc_event_result-FAILED
ev_result = if_fpm_constants=>gc_event_result-DEFER

ET_MESSAGES  A list of messages which shall be displayed in the message region.

GET_DATA:

Cal led within the FPM event loop. Here you s pecify the Tree data after the event has been processed.
Parameter Description

IO_EVENT The FPM event w hich i s to be processed.

IV_RAISED_BY_OWN_UI Indicates whether the event originates from this UIBB.

PUBLIC Page 49 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

IV_EDIT_MODE The OVP edit mode state of the UIBB.

IT_SELECTED_FIELDS The list of fiel ds necessary for the Tree rendering. Provi de only the data for the fields
listed in this table; all other fields are neither visible at runtime nor used as reference for 
visible fields.

ET_MESSAGES  A list of messages which shall be displayed in the message area.

EV_DATA_CHANGED For performan ce reasons, the GUIBB adjusts the data in the Tree only if the data has
been changed. You m ust set thi s flag whenever you change the parameter CT_DATA .

EV_FIELD_USAGE_CHANGED Indicates whether or not the field usage has been changed by this m ethod. If you change
the field usage without setting this flag to X, your changes are ignored.
EV_ACTION_USAGE_CHANGD Indicates wh ether or not th e action u sage has been changed. Use an X to in dicate
whether you changed the action u sage. If you do not, your changes are ignored.

CS_DATA The Tree data to be changed.

CT_FIELD_USAGE Field usage to change. The field usage consists of the field attributes wh ich m ight change
at runtime (for example, enabled, and visible). Note that if you change the fixed values of 
a field, set the flag FIXED_VALUES_CHANGED for this field.

CT_ACTION_USAGE  Action usage to change. The action usage consists of the attributes related to actions
which might change at runtime. For example, visibility. If an action is rendered as a
button, then the visibility setting of the button is defined here.

CS_TREE_ATTRIBUTES Use this parameter to specify the header and the tooltip for the m aster colum n i n the
Tree.

Notecolumns, note that it is possible to assign the attributes for CT_FIELD_USAGE  and CT_ACTION_USAGE  either to single cells, or to whole
Regarding
columns. If you want to set these attributes for the whole column, use the corresponding fields in the FIELD_USAGE  structure. If you would like to set these
attributes for single cells, proceed as follows:
1. Create a new column for the table (add a field to the field catalog in the GET_DEFINITION  method).
2. Define the column as a technical column (one that is not visible at runtime), by s etting the field TECHNICAL_FIELD  to X.
This column contains the properties of the cells.
3. In the GET_DEFINITION  method, adjust the field description accordingly. For example, you want to set the property READ_ONLY  for single cells in
column A. For this reason, you create a technical column B. In the field description, you set READ_ONLY_REF  to B.

GET_DEFAULT_CONFIG:
Call this if you want to have a default configuration. Use it to call pre-configured form configurations when a user starts the FPM configuration editor. This avoids
the user, who uses a feeder class to create a Tree, h avin g to create it from the beginn in g.

Parameter Description

IO_LAYOUT_CONFIG Of type IF_FPM_GUIBB_TREE_CONFIG : This object provides the API to create a


default configuration.

CHECK_CONFIG:
Cal l thi s if you want to make your own appl ication-specific checks on the configu ration in the FPM confi guration editor i mmediately before savin g.

Parameter Description

IO_LAYOUT_CONFIG Of type IF_FPM_GUIBB_TREE_CONFIG : This object provides the API to r ead the
configuration to be saved.

  1.2.1.9.3 Enabling the Search Feature in the Tree Component


Like the List ATS UIBB, the Tree UIBB can activate a search function within its toolbar.
Unlike the List ATS UIBB, in which the search function can be activated simply b y selecting the Search Function field in the General Settings panel in FLUID,
the search function for the Tree UIBB requires the application to prepare the data before the search.
 As the search is performed by the Tree UIBB on all rows (including those rows which might be concealed under collapsed nodes), the application must decide
when it should retrieve all of the data. The feeder clas s must inform the Tree UIBB, us ing the SEARCH attribute in the feeder class method
GET_DEFINITION , parameter ES_OPTION , which of the following options it chooses:
Retrieve all data on start-up
For this, the app lication must assign the following value to the SEARCH attribute: IF_FPM_GUIBB_TREE=>GC_SEARCH_OPTIONS-ENABLED .
Retrieve all data when the search is executed
For this, the app lication must assign the following value to the SEARCH attribute: IF_FPM_GUIBB_TREE=> GC_SEARCH_OPTIONS-DYNAMIC .
When the search is executed, the Tree UIBB raises the FPM event IF_FPM_GUIBB_TREE=>LOAD_ALL_DATA . This is the signal for the feeder class to
provide all data in method GET_DATA .
Now you can activate the search function for the Tree UIBB in FLUID.

Note
Unlike the search function in the List ATS UIBB which offers two types of search (find and filter), the Tree UIBB offers only one search flavor, that is, the find
type.

This feature is possible due to the text marker properties of the Web Dynpro ABAP UI element, the C-Table. For more information, see C Table Properties  in
the SAP Help Portal (help.sap.com).

 
PUBLIC Page 50 of 110
© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

  1.2.1.9.4 Enabling the Filter Feature in the Tree Component


You can configure the filtering options for the Tree component using FLUID. It is in the feeder class, however, where the actual filtering of the data is performed.
The following table describes what you must do to enable filtering in this component:

Point in Time Processing

Initialization and configuration In the feeder class method GET_DEFINITION , parameter field_description , set
ALLOW_FILTER = ABAP_TRUE  for the relevant columns.
In the General Settings panel of FLUID, set the filter functionality.

Start-up (when the feeder class m ethod GET_DATA  is called for the first time). This In the feeder class method GET_DATA , call the method GET_FILTER_RULES  of 
usually occurs when the FPM event FPM_START  is raised but this is not always the parameter io_service_in fo . If it returns the filter rules, the feeder class must filter the
case, for example, in a GAF floorplan where the Tree UIBB is on a subsequent step. data according to the rul es, and pass it to the Tree UIBB th rough parameters ct_data
and ev_data_changed .

User opens a column header menu The Tree UIBB calls the method GET_FILTER_SUGGEST_VALUES  in
IF_FPM_GUIBB_TREE_FILTER . (O ptional) The feeder class provides the fi lter 
suggest-values.

User activates a new filter rule (either by clicking a filter suggest-value inside the column The FPM event GC_EVENT_APPLY_RULES  in IF_FPM_GUIBB_TREE  is raised. The
header menu or by using the Filter tab inside the Personalization dialog box. feeder class mus t check whether th e filter ru les have changed. This is done by checking
the event parameter GC_EVENT_PAR_SERVICE  in IF_FPM_GUIBB_TREE . The value
gc_service_filteri ng means the filter rul es have changed. The feeder class must then
filter the data and pass the result in GET_DATA  through the parameters ct_data and
ev_data_changed .

  1.2.1.10 Launchpad Component

Definition
 A generic design template for displaying navigation destinations as hyperlinks.
It is implemented using the Web Dynpro component FPM_LAUNCHPAD_UIBB.
For more information on Launchpads, search for Launchpads  in the SAP Help Portal (help.sap.com).

Use
You use this design template in the floorplan of an overview page (OVP) to add a launchpad of type FPM_LAUNCHPAD_UIBB and configure how it is displayed.

Note
Floorplan Manager (FPM) is a framework for the layout of user interfaces of an application; the concrete construction of a launchpad is not carried out in FPM,
but in transaction LPD_CUST.

Structure
In the standard system, the display of a launchpad component on an overview page consists of three configurable areas:
Homepage
The system formats a launchpad on an overview page in four different ways on the home page. Users can switch between these using the toolbar. The
following formats are available:
Directory
In this view, the launchpad's folder structure is shown but the individual folders are not initially opened.
Map
In this view, the first level of the folder structure of the launchpad is shown. The system can also show quick-links below each folder. These quick-
links are selected items from that folder.
Index
In this view, all navigation destinations are listed alphabetically.
Tree
In this view, navigation destinations are displayed in a tree (hierarchical list) format. The links are grouped together under specific headings. Headings
appear as nodes which can be expanded to show the navigation links. The relevant feeder class determines whether individual nodes are shown as
expanded or closed at runtime.

Note
You can activate navigation via icons in Customizing for the launchp ad. To do this, choose Extras General Settings in Customizing for the
launchpad and select the Set Icons as Selectable checkbox.

Most Frequently Used


 An area listing navigation destinations that the user uses most frequently in the applic ation.
In Customizing for the launchpad, you can predefine this area with entries from the existing Customizing settings. This way, the area is displayed with
entries even when the user opens the application for the first time.
Related Links
 An area where the system shows additional navigation destinations that are not part of the navigation destinations on the homepage. You must also make
these navigation destinations available via the launchpad.
 At runtime, the user can personalize the launchpad component by moving each of the views around the screen. The panels containing the views can also be

PUBLIC Page 51 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

stacked on top of each other to form a tabstrip.

Integration
This launchpad component can only be inserted into a configuration of an OVP type floorplan.
You configure this component using the FPM configuration editor, FLUID.
You can configure, amongst others, the following properties of this component:
Homepage
You can determine the default view of the Homepage , the vis ibi lity of the individual Homepage views, and the number of columns that the Homepage
should contain.
Links visibility
Using the Links Visibi lity field, you can determine whether links should be displayed only in the Map format of the Homepage or in all views.
Role and Instance fields of the Homepage and Related Links areas
You can also determine which launchpad is added to the Related Links area. It is required that this launchp ad already has the launchpad type FPM_UIBB
assigned to it in Customizing for the launchpad.
 Area Pages
In some of the Homepage views, navigation links are grouped together under so-called area p age titles. Under the area page title, there is often information
about the area page itself. The First-Level Folder Information field determines whether the title of, and information for an area page app ears on the area
page itself as you navigate to it from a Homepage view.
For further information on this component, see the field help of the individual fields.
The properties describ ed above are found in the General Settings panel of FLUID. To make changes to the underlying launc hpads , choose the individual
configurable components in the Preview panel ; you are directed away from the FPM framework and into the transaction LPD_CUST ( Launchpad Customizing ).

Note
Since changes to launchpad components are primarily made in Customizing, there is no object schema for this component in the configuration editor.

Related Information
 Adding a Launchpad to a Toolbar Element
Editing a Launchpad
Interface: IF_FPM_GUIBB_LAUNCHPAD

  1.2.1.10.1 Adding a Launchpad to a Toolbar Element

Use
The launchpad component found in Floorplan Manager applications uses one type of launchpad. However, there are also other types of launchpad.
You can add launchpads of Stand-Alone type to the Related Links and You Can Also links in a toolbar on the user interface of a Floorplan Manager (FPM)
application.

Procedure
To assi gn a launchp ad to the You Can Also or Related Links toolbar elements, complete the following steps.
1. Run the appl ication you want to edit and choose either the Customize Page (to open the floorplan c omponent of your configuration) or the Show
Customizable Areas (to open the UIBB c omponent of your configuration) icon on the main toolbar.
2. Create a new Customizing for the component if none exists and select the relevant transp ort request.
The FPM configuration editor, FLUID, is displayed in edit mode.
3. Choose the Attributes toggle-button on the main toolbar to disp lay the Attributes panel if not visi ble.
4. Choose the Toolbar Schema tab.
5. Do one of the following:
Display the attributes of an existing You Can Also or Related Links element by c licking the element in the table.
 Add a link by c hoosing Add Toolbar Element in the toolbar and choosing either the Related Links or You Can Also element.
6. In the Attributes panel, enter the Role and Instance of the launchp ad you want to add.
7. Choose Save .
8. To see your changes at runtime, choose Test under the Additional Functions button on the toolbar.

More Information
Flexible User Interface Designer (FLUID)

  1.2.1.10.2 Editing a Launchpad

Procedure
To make changes to a launchpad in a Floorplan Manager (FPM) app lication, you must first know the technical names of the launchpad's Role and Instance .
Finding Out the Technical Names of a Launchpad in FPM

1. Run the appl ication and open the relevant app lication component configuration (floorplan or UIBB) usi ng the FPM configuration editor, FLUID, in administrator 
mode.
2. Choose the A ttributes toggle-button in the main toolbar to disp lay the Attributes panel.

PUBLIC Page 52 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

 
3. Choose the Y ou Can Also or Related Links element that contains the launchpad.
4. In the Attributes panel, take note of the launchpad's Role and Instance .
Editing a Launchpad

You edit a launchpad outside the FPM framework. To do this, complete the following steps:
1. On the SAP Easy Access screen, enter /NLPD_CUST in the command field.
2. Choose Continue .
The system calls up the start screen for launchpad Customizing.
3. On the Overview of Launchpads screen, double-click the launchpad with the correct role and instance combination.

4. On the Change Launchpad Role: <name of role> Instance: <name of instance> , screen you have the following options for changing the role:
1. To create additional applications, select New App lication .
2. To delete an application, click the applic ation and choose Delete .
3. To change an appli cation, click the appl ication and change its attributes (for examp le, the link text).
4. To insert a separator between two app lications, cl ick the app lication after which you would like the separator to be added and choose Add Separator .
5. Choose Save .

More Information
Flexible User Interface Designer (FLUID)

  1.2.1.10.3 Interface: IF_FPM_GUIBB_LAUNCHPAD


Description of methods in the interface implemented by the feeder classes of Launchpad components.

Table 1: Methods of IF_FPM_GUIBB_LAUNCHPAD Interface


OVERWRITE_LAUNCHPAD_KEY
Called at runtime, and before the launchpad customizing (defined in the configuration) is read. Allows the feeder class to specify another launchpad customizing.
Depending on the parameter EV_ALSO_CALLED_IN_PBO , thi s method is al so processed in PROCESS BEFORE OUTPUT .

Parameter Description

IV_ROLE Role of a laun chpad.

IV_INSTANCE Instance of a laun chpad.

IR_EVENT FPM event

EV_ALSO_CALLED_IN_PBO Flag if this method is processed also in PROCESS BEFORE OUTPUT

EV_ANYTHING_CHANGED_IN_PBO Must be set to ABAP_TRUE  if anything was changed in PROCESS BEFORE OUTPUT

 MODIFY
Cal led at run time before the content of the lau nchpad i s displ ayed. I t allows you to change some parts of the la unchpa d customizing. You can , for example, chan ge
the lin k text, or set an appli cation defined by a user par ameter. Dependin g on the parameter EV_ALSO_CALLED_IN_PBO , thi s method is al so processed in PROCESS
BEFORE OUTPUT .

Parameter Description

IR_NAVIGATION  A reference to the IF_FPM_NAVIGATION  interface.

IR_EVENT FPM event.

EV_ALSO_CALLED_IN_PBO See description for sam e parameter in m ethod OVERWRITE_LAUNCHPAD_KEY .

EV_ANYTHING_CHANGED_IN_PBO See description for sam e parameter in m ethod OVERWRITE_LAUNCHPAD_KEY .

OVERWRITE_REL_LINKS_LPD_KEY
Called at runtime, before the Launchpad customizing for Related Links (defined in the configuration) is read. Allows the feeder class to specify another launchpad
customizing for Related Lin ks . Depending on the parameter EV_ALSO_CALLED_IN_PBO , thi s method is al so processed in PROCESS BEFORE OUTPUT .

Parameter Description

IV_ROLE Role of a laun chpad.


IV_INSTANCE Instance of a laun chpad.

IR_EVENT FPM event.

EV_ALSO_CALLED_IN_PBO See description for sam e parameter in m ethod OVERWRITE_LAUNCHPAD_KEY .

EV_ANYTHING_CHANGED_IN_PBO See description for sam e parameter in m ethod OVERWRITE_LAUNCHPAD_KEY .

 MODIFY_RELATED_LINKS
Cal led at run time before the content of the lau nchpad for R elated Li nks is displa yed. It al lows you to chan ge some parts of the laun chpad customizing for Rela ted
Li nks. You can, for example, chan ge the li nk text or set an appl ication as defin ed by a user par ameter. Dependin g on the parameter EV_ALSO_CALLED_IN_PBO ,
this method is al so processed in PROCESS BEFORE OUTPUT .

Parameter Description

IR_NAVIGATION Reference to the  IF_FPM_NAVIGATION  i nterface.

IR_EVENT FPM event.


EV_ALSO_CALLED_IN_PBO See description for sam e parameter in m ethod OVERWRITE_LAUNCHPAD_KEY .

EV_ANYTHING_CHANGED_IN_PBO See description for sam e parameter in m ethod OVERWRITE_LAUNCHPAD_KEY .

PUBLIC Page 53 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

 NAVIGATE
Cal led within the FPM event loop, thi s method forwards the FPM PROCESS_EVENT to the feeder class. This method can be used to cancel the navigation, or to
change, or add an application or business parameters.

Parameter Description

IO_EVENT The FPM navigation event wh ich is to be processed.

EV_RESULT The result of the event processing.

Related Information
Interface: IF_FPM_NAVIGATION

  1.2.1.11 List Component

Definition
 A generic design template for displaying data in a list.
It is implemented using the Web Dynpro component FPM_LIST_UIBB.
The information displayed in a list at runtime is determined by the feeder class assigned to the configuration of the Web Dynpro component FPM_LIST_UIBB.

Note
This component is superseded by the List ATS component to comply with existing SAP UI guidelines.

Use
You use this design template in application-specific views (UIBBs) where you want to display data using a list. You can determine the concrete display of the
data in a list when configuring the Web Dynpro component FPM_LIST_UIBB.

Structure at Runtime
 A list is disp layed as a table of columns and rows at runtime. A list may have its own toolbar.
If the application has enabled sorting and filtering, an arrow appears in the bottom-right corner of the column headings at runtime, allowing you to perform these
actions.
List components may contain an action column containing several one-click action controls.

Editing the Structure at Design Time (FLUID)


You configure this component using the FPM configuration editor, FLUID.
 At design time, the Preview panel in FLUID disp lays the List component in a WYSIWYG style.
In the General Settings panel, you can specify settings applicable to the list as a whole.
In the List UIBB Schema , you can speci fy attributes for the individual elements of the list.
For more information on the attributes of this c omponent, choose Field Help from the context menu in the system.

Related Information
 Attributes of the List Component
FPM Events and the List Component
Interface: IF_FPM_GUIBB_LIST

Rendering List Component Data using SAP List Viewer (ALV)

  1.2.1.11.1 Attributes of the List Component


 A description of some of the attributes of this component.
The following attributes are available for the List Component:
Lead Selection Action Assignment
You can assign an FPM event ID to the lead selection here. If a lead selection occurs during runtime, the assigned FPM event is raised. If you assign no
event ID, the generic event  ID IF_FPM_GUIBB_LIST=>GC_FPM_EVENT_ON_LEAD_SEL  is assigned.
Column Count
Determines the amount of columns that are displayed at runtime
Row Count
Determines the amount of rows that are displayed at runtime
Selection Event
Like a Web Dynpro table, the List Component offers two kinds of selection at runtime:

Lead selection (the user uses the left mouse-button to select one single row)
Normal selection (the user uses the right mouse-button to select one or more rows)
Using this dropdown list box, you can determine what kind of selection raises an FPM event. The default is a Lead Selection.
Selection Mode
Determines whether it is possible to select multiple rows

PUBLIC Page 54 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Selection Behavior 
Determines whether currently selected rows are de-selected when the user makes a new selection
Fixed Columns
It is possible to set the initial column in a list as a fixed column. As a result, whenever a horizontal scrollbar is used, these fixed columns cannot be
scrolled. There is an attribute in the General S ettings panel for the GUIBB, where you can set the number of columns to be fixed. Note the following:
It is only the initial column that can be fixed; columns with index 1,2,3... It is not possible to fix columns at random indices.
The number of visible columns is indep endent of the number of fixed columns. For examp le, if the Fixed Columns is set as 3 and the total columns
as 5, then the actual number of columns visible on the UI would be 8. Here, the first 3 columns would always remain fixed and the count for the
visible column starts from 1 after the last fixed column.
Initial Lead Selection
If this field is selected then, at runtime, if the list contains at least 1 record, the first record is lead selected

  1.2.1.11.2 FPM Events and the List Component


The List component, being an FPM UIBB, takes part, when it is visible, in each FPM event loop. The List component may also raise FPM events itself from
several sources.
These events are raised from the following sources:
Cell events
The columns may contain fields with a display type that is capable of raising an event (for example, a Button display typ e). All cell-based events have
the FPM event ID IF_FPM_GUIBB_LIST=>GC_GUIBB_LIST_ON_CELL_ACTION . The corresponding row and column values are added as event
parameters to this FPM event as follows:
IF_FPM_GUIBB_LIST=>GC_EVENT_PAR_ROW
IF_FPM_GUIBB_LIST=>GC_EVENT_PAR_COLUMN_NAME
Toolbar events

 Almost each toolbar element may raise an FPM event. In this case, the event ID is the Action ID (which is defined by the feeder class in method
GET_DEFINITION ). To get user input values from elements such as a toggle button, input field, or dropdown list box, you can use the following FPM
event parameters:
IF_FPM_GUIBB_LIST=>GC_EVENT_PAR_TOGGLE_STATE
IF_FPM_GUIBB_LIST>GC_EVENT_PAR_INPUT_VALUE
IF_FPM_GUIBB_LIST=>GC_EVENT_PAR_DROP_DOWN_KEY
Selection events
 A row selection may also raise an FPM event. It is possible to choose whether only a lead selection, or a normal selection raises an FPM event. For more
information, see the system documentation in FLUID).

  1.2.1.11.3 Interface: IF_FPM_GUIBB_LIST


Description of methods in the interface implemented by the feeder classes of both List components (List and List ATS).

Table 1: Methods of IF_FPM_GUIBB_List Interface

Method Name Description


GET_DEFINITION Called once at startup. Tells the List UIBB which columns and actions are available.
This is done using parameters EO_FIELD_CATALOG  and
ET_ACTION_DEFINITION  for columns and toolbar items respectively. The columns
and actions defined here do not automatically appear at runtim e. They appear in the
FPM configuration editor as a list of available columns and actions to choose from. Only
when they have been configured will they appear at runtime.
It is also possible to provide additional information about columns such as texts,
tooltips, F4 helps, and formatting information. This is done using parameter 
ET_FIELD_DESCRIPTION

FLUSH Called as part of the FPM event loop. It is the first m ethod of the event loop. Usin g
parameter IT_CHANGE_LOG , i t tells the feeder class what changes have been m ade
by the user. The changes, i ndicated by IT_CHANGE_LOG , must not be copied into the
source data table (parameter IT_DATA ); accessing the source table is n ot allowed in
this FPM event hook.

PROCESS_EVENT  Also part of the FPM event loop; called directly after the FLUSH  method. Use this
method to check the Event ID and, if necessary, to carry out Event ID-specific
processing. Besides the Event ID , the feeder class also gets information about the
currently selected rows, and whether the event has been raised by this List UIBB, or by
some other UIBB on the screen. For more information, use the parameter 
IO_UI_INFO  (i nterface IF_FPM_LIST_ATS_UI_INFO ).
 Additionally, this method can be used to pass messages using the parameter 
ET_MESSAGES .

GET_DATA  Also part of the FPM event loop; called directly after method PROCESS_EVENT . It
corresponds to the general UIBB method PROCESS_BEFORE_OUTPUT . The main
purpose of this m ethod is to exchange data between the feeder class and the List ATS
UIBB (for details, refer to the section Data Exchange in this document. It is also used
to change attributes of the table (parameters CS_ADDITIONAL_INFO  and
CV_FIRST_VISIBLE_ROW ), attributes of the columns
(parameter  CT_FIELD_USAGE ), and attributes of the toolbar elem ents (parameter 
CT_ACTION_USAGE ). With CV_FIRST_VISIBLE_ROW , it is possible to set the first
visible row of the list.

GET_PARAMETER_LIST Called once at startup. It is not mandatory to use thi s method. It is u sed to fill th e feeder 
class parameters with valu es. The feeder class defines parameters and at design ti me
one can assign values to those parameters in the FPM configuration editor with this
method. This is used, for example, in more complex (generic) feeder classes.

PUBLIC Page 55 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

INITIALIZE Called once at startup. It is not mandatory to use this method. At runtime this method
tells w hat parameters have been defined by the feeder class ( GET_PARAMETER_LIST )
and what values have been assigned to them in the configuration. This is used, for 
example, i n m ore complex (generic) feeder classes.

GET_DEFAULT_CONFIG Called once at startup. It is not mandatory to use thi s method. It has two purposes.
When creating a new configuration, use this method to generate a list of columns and
toolbar elements that could be configured. This method is also called at runtime when
no column s at all are configured. In thi s case, it is u sed to generate a configuration.

CHECK_CONFIG Called at design time only. It is not mandatory to use this method. Use this method to
execute application-specific checks on the configuration.

Related Information
Data Exchange in the List ATS Component

  1.2.1.11.4 Rendering List Component Data using SAP List


Viewer (ALV)
There is an option to render the data in a List component using the SAP List Viewer (ALV). This allows the end-user to personalize the table and, amongst other 
things, to export data from the table to a spreadsheet, to use the print feature, and to sort and filter data.
For more information on the SAP List Viewer (ALV), see the SAP NetWeaver Library.

Configuration of the Standard View o f an SAP List Viewer (ALV)


You can specify an SAP List Viewer in the configuration editor for Floorplan Manager when you configure a Web Dynpro component containing a list that you can
edit with the SAP List Viewer.
To display the list, the system loads this standard view of the SAP List Viewer when the FPM application is called.

Note
This function is available only in List component configurations based on the FPM_LIST_UIBB GUIBB component; component configurations based on
FPM_LIST_UIBB_ATS GUIBB component contain other functions that negate the use of ALV rendering.

Integration
You can use other SAP List Viewer views to override the standard view of the SAP List Viewer that you have specified in configuration at design time. These are
SAP List Viewer views that have been selected as the initial view by the administrators in the Customizing layer or by the user during personalization. At design
time, you cannot assign theseSAP List Viewer views as the standard view during configuration. For more information about how to create SAP List Viewer views at

runtime in an application, see SAP List Viewer for Web Dynpro.


Prerequisites
This function is only available for Web Dynpro components for which you have implemented the IF_FPM_CFG_CONF_ALV_USAGE  interface.
Features
You make assignments for the standard view of the SAP list viewer in the configuration editor for Floorplan Manager when you configure the Web Dynpro
component containing the SAP List Viewer list. The Configurable ALV Tables table is vi sib le in the attributes of the Web Dynpro component. You can select a
view for each usage name in this table.

Configuration Editor Settings


In the component cconfiguration of the List component at design time, in the Attributes section of FLUID, the Rendering Style dropdown list disp lays the following
options:
Standard Rendering
The data is displayed in a simple table format.
Render as Row-Repeater 
The data is displayed in a single column format. Column headings which would appear once in a table format are repeated here to form a group; one group
is displayed on top of another group in a single column.
Render as ALV
The data is displayed in an ALV table format with sorting, filtering, printing and personalization capabilities as well as the feature to print to Microsoft Office
Excel. No other settings are required for ALV output; it is not necessary to make changes to the feeder class, nor to the configuration of the List component.

Important Notes on ALV Rendering


Rendering a list with ALV consumes considerably more memory than rendering with the List component. Therefore, it is recommended to render with ALV
only when necessary.
If ALV rendering is selected, it should never be deselected in a later delivery. If the end-user personalizes an ALV table, the changes are lost when ALV is
switched off in a later delivery.
It is possib le to print table data to a spreadsheet without rendering the table in ALV format. In FLUID, in the Attributes panel, select the Export to Excel
check box. This provides an Export List button above the table at runtime.
Data handling and formatting in ALV may not be exactly the same as with the List component, due to the technical differences between ALV tables and WD
tables (for example, the event names are not the same for the two tables).
It is recommended (but not mandatory) to use separate configurations for the List component and ALV to avoid possible discrepancies. Due to the point
above, applications might code in the feeder class specific to an event ID and parameters. Switching between the two modes for the same configuration
might lead to discrepancies. The List component and ALV are also different in terms of the features they offer. It is therefore best if they are separate
configurations to avoid features being available in one and not available in the other for the same table.

PUBLIC Page 56 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

More Information
List ATS Component

  1.2.1.12 List ATS Component

Definition
 A generic design template for displaying data in a list.
It is implemented using the Web Dynpro component FPM_LIST_UIBB_ATS.
The information displayed in a list at runtime is determined by the feeder class assigned to the configuration of the Web Dynpro component
FPM_LIST_UIBB_ATS.

Note
This List component supersedes the original List component implemented by the Web Dynpro component FPM_LIST_UIBB. The List ATS (ABAP Table
Services) component provides you with an extended range of features, including personalization features, and advanced sorting and filtering functions.

Use
You use this design template when you want to display data using a list. You can determine the concrete display of the data in a list when configuring the Web
Dynpro component FPM_LIST_UIBB_ATS.

Structure at Runtime
 A list is disp layed as a table of rows and columns at runtime. Each item in a list is displayed in a sep arate row. A list has its own toolbar.
Each column of the list has a column header. If the application has enabled list functions such as sorting, filtering, and grouping, an arrow appears in the bottom-
right corner of the column header when you hover the mouse over the heading at runtime. The available menu options are determined by the relevant feeder class.
List components may contain an action column containing several one-click action controls.

Editing the Structure at Design Time (FLUID)


You configure this component using FLUID, the FPM configuration editor.
 At design time, the Preview panel in FLUID disp lays the List ATS component in a WYSIWYG style.
In the General Settings panel, you can specify settings applicable to the list as a whole.
In the List UIBB Schema , you can speci fy attributes for the individual elements of the list, and add or remove columns.
For more information on the attributes of this c omponent in FLUID, c hoose Field Help from the context menu in the system.

Changes to Elements of Previous List Co mponent (FPM_LIST_UIBB)


Note the following changes regarding elements that were available in the previous version of the List component:
Data changes in feeder class method FLUSH
Method FLUSH  contains the parameter IT_DATA . This parameter holds a reference to the internal table which contains the table data. Therefore, it is
theoretically possible to change the table data using this parameter, though it was never the intention to allow the feeder class to do so. The correct place to
change the data is in feeder method GET_DATA . The List ATS component no longer allows you to change data in FLUSH .
Style of rendering
The original List component can be adjusted to render itself in the following styles:
Normal list rendering
Row-repeater rendering
 ALV rendering
This feature no longer exists in the List ATS component (the features in ALV rendering are already included in the List ATS, for example, personalization,
extended sorting, and filtering).
Text wrapping for column headers is now possi ble us ing the Header attribute of the column in FLUID; use the ENTER key to start a new line in a header.
Previously, it was also possible to control text wrapping in the feeder class (method GET_DEFINITION , parameter ET_FIELD_DESCRIPTION , attribute
HEADER_TEXT_WRAPP ING ). This is no longer possib le in the List ATS UIBB.

Related Information
Personalizing the List ATS Component

  1.2.1.12.1 Data Exchange in the List ATS Component


There are several different data exchange modes for the List ATS component.

General
The data exchange happens in the feeder methods FLUSH  and GET_DATA . Data entered by the user is passed using method FLUSH  to the back end; the

PUBLIC Page 57 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

data from the back end is passed to the front end using method GET_DATA . The following are the different data exchange modes:
Compatibility
Key
Stable Line
It is recommended to use either the Key or Stable Line modes to ensure that the data exchange complies with the latest SAP UI guidelines.
 A detailed description for the above exchange modes, and for managing data exchange is found in the section Edit Scenarios for the List ATS UIBB:
Guidelines.

Compatibility Mode
This mode exists to supp ort feeder clas ses that have been coded for the former (old) List component (List UIBB). It uses two parameters: CT_DATA and
EV_DATA_CHANGED . When the parameter EV_DATA_CHANGED is set to TRUE, the List ATS GUIBB takes the data from parameter CT_DATA . There is
no possibility to exchange only part of the data; the whole table is exchanged.

Key Mode
In this mode, the rows of the data table have a primary key. Arbitrary operations with the data table are possible as long as the uniqueness of the keys is
guaranteed. This mode uses the parameters CT_DATA , CS_DATA_CHANGED and EO_ITAB_CHANGE_LOG . The parameter 
EO_ITAB_CHANGE_LOG is a handle to the interface IF_SALV_ITAB_CHANGE_LOG  which describes how the data in the data table was changed. This
interface has the following methods:

Table 1: Methods of IF_SALV_ITAB_CHANGE_LOG Interface

Method Description

GET_INDEX_MAP Gets the i ndices of deleted rows (before im age), th e indexes of in serted rows (after 
im age), the m apping of rows between before and after im age and the indexes of rows
(before image) which must be moved to an insert position

GET_COLUMNS_MODIFIED Gets the names of columns for which values have been changed

GET_LINES_MODIFIED Gets the in dices of lines (after im age) for which v alues have been changed

DATA_IS_NEW The value is TRUE i f data is completely n ew and there is n o connection between before
and after image

If the parameter EV_D ATA_CHANGED is set to TRUE, the List ATS UIBB distinguis hes between the following cases :

EO_ITAB-CHANGE_LOG Purpose

Initial Data table is changed but the changes are not recorded; data is new

Not Initial Data table is changed but the change log is not complete; data is new
DATA_IS_NEW  = TRUE

Not Initial Data table is changed and the change log is complete
DATA_IS_NEW  = FALSE

In the 'data is new’ cases, no connection between the before and after images can be constructed by the List ATS UIBB. Therefore, features such as sorting and
filtering are executed automatically. These services are not to be executed automatically when only part of the data is changed.
There is a standard implementation for Key mode for the creation of a change log, the class CL_SALV_ITAB_EDITOR_KEY_MODE . This class has the
following methods:

Table 2: Methods of CL_SALV_ITAB_EDITOR_KEY_MODE Class

Method Name Description

LOG_NEW_DATA Resets the change log ( DATA_IS_NEW ); returns TRUE value

START_RECORDING Starts recording of a change log; an existing change l og is deleted

KEY_CHANGED Notifies that a key was changed


STOP_RECORDING Stops recording of a change log

MOVE_TO_INSERT_POSITION Marks a line for moving to an insert position

Stable Line Mode


In this mode, the order of lines in the data table must not be changed; in particular, the table must not be sorted. Insertions and deletions of lines are allowed. This
mode uses the parameters CT_DATA , CS_DATA_CHANGED and EO_ITAB_CHANGE_LOG . For a description of these parameters, refer to the Key
mode section above.
There is a standard implementation for the Stable Li ne mode for the creation of a change log, the class CL_SALV_ITAB_EDITOR_LINE_MODE . This class
provides methods for table operations such as insert and append instead of direct usage of ABAP statements. This class has the following methods:

Table 3: Methods of CL_SALV_ITAB_EDITOR_LINE_MODE Class

Method Name Description

START_RECORDING Starts recording of a change log; an existing change l og is deleted

SET_NEW_DATA Gets new data and resets the change log ( DATA_IS_NEW  returns TRUE value)

APPEND_... Substitutes for ABAP statement APPEND (3 variants)

PUBLIC Page 58 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

CLEAR_TABLE Substitutes for ABAP statement CLEAR

COLLECT_LINE Substitutes for ABAP statement COLLECT

DELETE_... Substitutes for ABAP statement DELETE (2 variants)

INSERT_... Substitutes for ABAP statement INSERT (3 variants)

MODIFY_LINE Substitutes for ABAP statement MODIFY

MOVE_TO_INSERT_POSITION Marks a line for moving to an insert position

Related Information
Edit Scenarios for List ATS UIBB: Guidelines

  1.2.1.12.2 Actions in the List ATS


 An action in this sense is a UI element, such as a button, a link to action, or an input field, that is capable of raising an FPM event. There are several places in a
List ATS component where you can set actions.
You can set actions in the following places in the List ATS UIBB:
Toolbar 
Inside cells
Inside the Action column (known as 'one-click actions')

Actions in the Toolbar 


 Actions must first be defined in the feeder class using the method GET_DEFINITION , p arameter   ET_ACTION_DEFINITION . Additionally, actions must be
added to the Toolbar Schema panel in the FPM c onfiguration editor, FLUID, to ensure that they appear at runtime.
 At runtime, the actions will raise the FPM Event ID that has been spec ified using the attribute ID  in parameter ET_ACTION_DEFINITION .
It is possible to render the action in the toolbar of the OVP assignment block in which the list is embedded, instead of in the toolbar of the List ATS UIBB. To do
this, set the flag Exposable of parameter ET_ACTION_DEFINITION  to TRUE.
You can change properties such as Visibility , or Enabled of the toolbar elements in the feeder class method GET_DATA  using parameter 
CT_ACTION_USAGE .

You can assign a particular action (corresponding to one entry in ET_ACTION_DEFINITION ) to more than one UI element in the toolbar. However, when doing
so, be aware of the following restriction: In feeder class method GET_DATA  it is possible to change properties of the UI elements in the toolbar using parameter 
CT_ACTION_USAGE . For actions that have been used more than once, it is only possible to change the Visibili ty and Enable/Disable properties.

Actions inside Cells


In the FPM configuration editor, you can set several Displ ay Types ( Input Field , Button , Checkbox , and Link to Action ) to raise an event.
The standard behavior of all cell actions is to raise the same event, IF_FPM_GUIBB_LIST=>GC_GUIBB_LIST_ON_CELL_ACTION . Using the event
parameter IF_FPM_GUIBB_LIST=>GC_EVENT_PAR_COLUMN_NAME , you can determine which cell has raised which action. However, you can change the
standard behavior in the FPM configuration editor. In addition to the standard behavior, there is the possibility to un-assign an action (no action at all), or to assign a
specific action (in which case the action must be specified by the feeder class in method GET_DEFINITION , parameter ET_ACTION_DEFINITION ).

One-Click Actions
One-click actions are actions that are specific to a certain table row, and are executed with a single mouse-click, such as deleting a row, editing a row, or setting
the status of a row. One-clic k actions have the displ ay type Link to Action , and are rendered in one single column known as the action column. In accordance
with current UI guidelines, there is only one action column, and it is the first column in the table.
To use one-click actions, complete the following steps:
1. Define actions in the feeder class method GET_DEFINITION , parameter ET_ROW_ACTIONS .

Note
There must be a minimum of 2 entries in parameter ET_ROW_ACTIONS .

2. Edit the configuration in the FPM configuration editor, FLUID. If the feeder clas s has defined one-clic k actions, the Repositories panel dis play s a spec ial
column, FPM_ROW_ACTIONS_COLUMN ; you can drag this in to the List UIBB Schema panel.
3. To add one-clic k actions to the action column, select the action column in the List UIBB Schema , and then add single actions using the Attributes panel.
 At runtime, it is possible to disable, or hide, single one-click actions per row. To do this, you must define a new technical column of type BOOLEAN  in the feeder 
class that controls the enablement or visibility of the one-click action. To do this, add the column in feeder class method GET_DEFINITION , p arameter 
EO_FIELD_CATALOG , and mark it is as Technical using parameter ET_FIELD_DESCRIPTION , and attribute TECHNICAL_FIELD . The ID of that column
must be put into the one-click action definition (method GET_DEFINITION , parameter ET_ROW_ACTIONS , attribute VISIBLE_REF , or ENABLED_REF ). Fill
the content of the technical column according to your requirements in method GET_DATA .

Note
One-click actions are also available in the previous List component (  FPM_LIST_UIBB ).

  1.2.1.12.3 List Operations (Filtering, Sorting, Grouping,


 Aggregation)

PUBLIC Page 59 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Enablement of filtering, sorting, grouping, and aggregation functions on a List ATS component.

Filtering
The feeder class determines whether a column can be filtered or not. Do this using method GET_DEFINITION , parameter ET_FIELD_DESCRIPTION ,
attribute ALLOW_FILTER . If the feeder class allows filtering on columns, it is possible to switch the filtering on or off in the FPM configuration editor, and to
determine the filtering rules.

Sorting
The feeder class determines whether a column can be sorted or not. Do this using method GET_DEFINITION , p arameter ET_FIELD_DESCRIPTION ,
attribute  ALLOW_SORT . If the feeder class allows sorting on columns, it is possible to switch the sorting on or off in the FPM configuration editor, and to determine
the sort rules.

Aggregation
The feeder class determines whether a column can be aggregated or not. Do this using method GET_DEFINITION , parameter ET_FIELD_DESCRIPTION ,
attribute ALLOW_AGGREGATION . If the feeder class allows aggregation on columns, it is possible to switch the aggregation on or off in the FPM configuration
editor, and to determine the aggregation rules.

Grouping
This feature allows the user to group entries of columns by column header. It is not controlled by the feeder class. It can be switched on or off only in the FPM
configuration editor, and to determine the grouping rules.

  1.2.1.12.4 F4/Input Help


The List ATS UIBB supports several types of input (F4) help.

F4/Input Help
The List ATS UIBB supports the following types of F4 help:
DDIC
If a column uses a data element that has a DDIC F4 Help assigned to it, the F4 Help is used automatically. It is possible to overwrite this, and to use
another DDIC F4 Help. This is done in feeder class method GET_DEFINTION , p arameter ET_FIELD_DESCRIPTION , attribute DD IC_SHLP_NAME .
OVS
To use this type of F4 Help, you must implement the interface  IF_FPM_GUIBB_OVS . This can be done in the feeder class itself, or in another class. If you
implement it in another class, the List ATS UIBB instantiates the class at runtime. It is also necessary to put the name of the class that implements the
interface into the attribute OVS_NAME  of parameter ET_FIELD_DESCRIPTION  in feeder class method GET_DEFINITION .
The methods of the interface IF_FPM_GUIBB_OVS  must be implemented according to the documentation for the Online Value Help (OVS) concept. You
can pass an FPM event (  EO_FPM_EVENT ) in method HANDLE_PHASE_3 . This is optional. If it is passed, this event is raised directly after the end of the
value help processing. If it is not passed, no round-trip after the value help processing takes place.
Freestyle WD ABAP
To use this type of F4 Help, you need to create a Web Dynpro component that implements the Web Dynpro interface IWD_VALUE_HELP . You must put
the name of that component into the attribute WD_VALUE_HELP  of parameter ET_FIELD_DESCRIPTION  in feeder class method GET_DEFINITION .

  1.2.1.12.5 Drag-and-Drop of Rows at Runtime


You can enable drag-and-drop of table rows during runtime.
To do this, the feeder class must define the corresponding attributes. This is done in method GET_DEFINITION , parameter ET_DND_DEFINITION . There,
you can determine whether a list is to be the drag source, drop target, or both (attribute Type ), whether drag-and-drop occurs only within the same list, or 
between several lists (attribute Scope ).
If drag-and-drop between several lists is defined, it is possible to control which lists are used as a drag source, and which lists are used as a drop target (attribute
Tags ). When two lists have the same tags, you can drag and drop between them. You can assign more than one tag to a list in the configuration editor by
separating them with semi colons. Drag-and-drop attributes can be changed at runtime (feeder class method GET_DATA , parameter CT_DND_ATTRIBUTES
and attribute EV_DND_ATTR_CHANGED ).
When drag-and-drop occurs at runtime, the following FPM event is raised after a row(s) has /have been dropped:
IF_FPM_GUIBB_LIST=>GC_GUIBB_LIST_ON_DROP  (the event is only raised by the List ATS UIBB when the user has dropped the rows).

You can check this using parameter IV_RAISED_BY_OWN_UI  in feeder class methods GET_DATA OR PROCESS_EVENT . Data regarding the row that has
been dragged is passed as an event parameter of the event IF_FPM_GUIBB_LIST=> GC_GUIBB_LIST_ON_DROP . The row that has been dragged is not
automatically inserted into the target list. That must be done by the feeder class itself. To comply with current UX guidelines, you must use a special method to
insert the data. This method, MOVE_TO_INSERT_POSITION , is part of the change log API. Refer to the section Data Exchange for further details.
When grouping is enabled, it could happen that the drop position lies between two group header rows (for example, if at least one group is collapsed). In this
case, the insert position in the drop event is initialized. The application must decide if the drop should still be executed. Inserted rows will be appended to the end
of the table if no other insert position has been explicitly specified in PROCESS_EVENT .

Related Information
Data Exchange in the List ATS Component

PUBLIC Page 60 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

  1.2.1.12.6 Influencing the Row Order at Runtime


Usually, the row order at runtime is determined by sort settings which are personalized by the user. But even in the absence of such sort rules, the List ATS
attempts to keep the row order stable. While this is the desired behavior in most use-cases, an application is sometimes required to have more control over the
row order at runtime.
If you need to influence the row order which is displayed to the user, you can choose from the alternatives listed below. However, keep in mind that personalized
sort and filter rules may have an impact on any attempt to manipulate the row order at runtime.
Disable sorting and grouping by configuration or feeder class definition.

This prevents the user from changing the row order without the feeder class noticing it. However, you must be aware that newly inserted rows are inserted at
the point of selection, or appended to the end of the table as long as the feeder class provides a change log in GET_DATA . If you want to avoid this, do not
provide such a change log (or set the change log report to Data is New ).
Clear the sort and grouping rules immediately before setting new data as described in the section Clearing Sorting and Grouping Rules from
Personalization . Consider very carefully whether this is a good choice for your application. It is the application developer’s responsibility to ensure that the
UI remains intuitive and usable when making use of this feature.
Move individual rows to a given position, retaining their front-end order.
In method PROCESS_EVENT , you define the insert position as described in the section Defining the Insert Position of New Rows . In method
GET_DATA , you supply a change log which provides the rows to be moved to the insert position in parameter api of method GET_INDEX_MAP . Note that
this procedure retains the sequence of the moved rows as they were previously shown on the front-end. Any personalized filter operations are then no longer 
applied to these rows.
Move individual rows to a given position, displaying them in their back-end order.
In method PROCESS_EVENT , you define the insert position as described in the section Defining the Insert Position of New Rows . In method
GET_DATA , you supply a change log which lists the rows as both deleted and inserted. As a result, the inserted rows will be shown at the current insert
position in the order they appear in the original data table. Any personalized filter operations are then not be applied to these lines.

  1.2.1.12.7 Reading the Row Order displayed at Runtime


It is possible to retrieve the order of the data rows as displayed at runtime.
To do this, you must use the instance of IF_FPM_LIST_ATS_UI_INFO  that is passed as an import parameter IO_UI_INFO  to PROCESS_EVENT . For 
more details, refer to the ABAP documentation of method GET_LINE_ORDER  of that interface (accessible with the F9-key in the ABAP workbench).
This information is particularly useful if you want to provide features to move individual rows up or down at runtime. In this case, make sure you consider the
situations that users have personalized any filter conditions, or that users might have defined any grouping rules and some groups may be collapsed. In such
cases, GET_LINE_ORDER  indicates hidden rows.

  1.2.1.12.8 Defining the Insert Position of New Rows


You can define the insert position for new rows or for rows that have been moved using method PROCESS_EVENT .
To do this, use the instance of IF_FPM_LIST_ATS_UI_INFO  that is pass ed as an imp orting parameter IO_UI_INFO  to PROCESS_EVENT . For more

details, refer to the ABAP documentation of method SET_INSERT_POSITION  of that interface (accessible with the F9-key in the ABAP workbench).
You specify the insert position as a table index, referring to the importing parameter IT_DATA  of method FLUSH . You can also specify whether the index
position is b efore or after that data row. Always k eep i n mind that the row order of the front-end may be di fferent from the sequence in IT_DATA . Therefore,
specifying the insert position as 'before 2' is not the same as 'after 1'.
If users have personalized a view with active grouping rules, new rows will be added to the group in which the row at the insert position belongs to.

  1.2.1.12.9 Clearing Sorting and Grouping Rules from


Personalization
If the feeder class provides no change log in the GET_DATA  method, and sets EV_DATA_CHANGED  to TRUE , the data table is sub jected to any pers onalized
sorting rules. If you want new data to be shown in exactly the same order provided by the feeder class, you must first clear the personalized sorting rules.
The feeder class can achieve this by raising the FPM event IF_FPM_GUIBB_LIST=>GC_EVENT_CLEAR_SORT_RULES_ATS  (make sure to attach the
instance key to the event). The sorting rules are cleared after the phase PROCESS_EVENT  has been finished for this event. So, if the feeder class provides new
data in method GET_DATA  for this event, this data will be displayed in the sequence provided by the feeder class.

Note
Clearing sorting rules also results in clearing grouping rules. The event does not clear any filter rules.

  1.2.1.12.10 Sorting and Filtering of Images in a List


The List ATS component provides the possibility of letting the end-user sort and filter images (icons) at runtime.
To enable this, meta data must be attached to the images using the feeder class method GET_DEFINITION , p arameter ET_FIELD_DESCRIPTION , attribute
ENUMERATION .

The ENUMERATION  attribute is a table consisting of two columns: values and their descrip tions. The column Value contains the technical names that app ear at
runtime in the table itself. For example, assume there is a table column image, having the following entries: ~ic on/red , ~ic on/green , and ~ic on/yellow . The
table should be completed as follows:

Value Text (Description)


~icon/red Declined

~icon/yellow Undecided

~icon/green Approved

PUBLIC Page 61 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

The order of the entries in the enumeration table is important. At runtime, when a user chooses the sort action, the column is sorted in the order defined in the
enumeration table; in this example, red icons are displayed at the top of the list, followed by yellow icons, and then green icons. It is also possible to change the
content of the enumeration table at each round trip. You can do this in the feeder class method GET_DATA , using parameter IO_EXTENDED_CTRL . Note also
that the the attribute ORDER_OF_CRITERION  of the relevant field descriptor must also be set to IF_FPM_CONSTANTS=>GC_ORDER_CRITERION-
ENUMERATION .

  1.2.1.12.11 Multi-Value Paste


It is possible to paste multiple values from the clipboard into a List ATS component (when the list is in edit mode).
Occasionally, the content of the clipboard consists of a table that has more rows than currently available in the List ATS component. In this case, the amount of 
rows copied from the clip board is li mited to the amount of rows availab le in the List ATS component. However if Mass Edit mode (see following section) is
enabled, the List ATS component can dynamically create new rows if necessary, thereby allowing all content to be copied and pasted.
Normally, only the feeder class creates new rows (in feeder class method GET_DATA ) but in this case the List ATS component creates the rows. In the case of 
multi-value paste, the FPM event IF_FPM_GUIBB_LIST=>GC_EVENT_MULTI_VALUE_PASTE  is raised.
Services such as sorting and filtering are not applied to the new rows.

  1.2.1.12.12 Mass Edit


This feature enables the end-user to enter data, and create new rows in a convenient and speedy manner.
 At runtime, at the bottom of a table in edit mode, dummy (virtual) rows appear. The user can insert data into those virtual rows, and as soon as Enter is pressed,
the List ATS component will take the content of that input and create real rows.
Usually, only the feeder class creates new rows (in feeder class method GET_DATA ). However, if this feature is activated the List ATS component will create and
append new rows automatically. In the FLUSH  method, the change log lists the content of new rows. Of course, in method GET_DATA , the feeder class has the
possibility to adjust the data if necessary. This feature must be activated by the feeder class in method GET_DEFINITION , parameter ES_OPTIONS , attribute
ALLOW_CREATE_ROWS_BY_LIST_UIBB . Additionally, it is necessary to set a flag in the configuration ( General Settings panel, Automatic Row App end ).

It is also possible for the feeder class to enable and disable the mass edit mode in each roundtrip, and pass template values for the new lines. This is done using
the feeder class method GET_DATA , parameter IO_EXTENDED_CTRL , method SET_MASS_EDIT_MODE . Services such as sorting and filtering are not
applied to the new rows.

  1.2.1.12.13 Row-Specific Property Values for Display Types


The property values of the display types dropdown list box and threshold slider can be row-specific and it is possible to change them via the feeder class at
runtime.
Developers can configure that specific property values are displayed for these display types in a List ATS component depending on the row selected. The
property values can be altered at runtime using the follwing interfaces:
Dropdown list box: IF_FPM_LIST_ATS_VALUE_SET

Threshold slider: IF_FPM_LIST_ATS_THRESHOLD


To use this feature, developers must complete the following actions:
1. Set a flag to indicate that this feature is to be used in the dropdown list boxes or threshold sliders. In the parameter ET_FIELD_DESCRIPTION  of the
GET_DEFINITION  method, set the parameter FIXED_VALUES_IS_ROW_SPECIFIC  to TRUE .
2. In FLUID, set the display typ e of the column to Dropdown List  or Threshold Slider .
3. Access the API and set the property values.
This is done in feeder class method GET_DATA  (parameter IO_EXTENDED_CONTROL , interface IF_FPM_LIST_ATS_EXT_CTRL , method
GET_VALUE_SET_HANDLER  respectively GET_THRESHOLD_HANDLER ).

  1.2.1.12.14 Edit Scenarios for List ATS UIBB: Guidelines

Objectives
The List ATS UIBB provides, with the help of ABAP Table Services (ATS), sorting and filtering services. These services do not work directly on the data table of 
the application; they copy the required information into their own, local structures. They compute and manage the mapping between rows of the data table (source)
and rows shown on the UI (result). Therefore, the feeder class cannot presuppose any connection between the data table and the UI unless the execution of 
services is forbidden.
The following questions arise if edit scenarios are to be realized:
How do I handle a row on the UI if the value of a sorted column is changed and the new value is not in the sort order?
How do I handle a row on the UI if the value of a filtered column is changed and the new value does not fulfill the filter criteria?
Where should a row on the UI be displayed which is inserted by the feeder class?
The desired behavior of the UI is outlined in the SAP UI Guidelines 2.0. In brief, these guidelines state that for edit scenarios the UI must be stable after values
are changed. This can be summarized as follows:
If values in a row are changed, the row maintains its position on the UI independent of the kind of change.
If rows are inserted into the data table by feeder class, these rows appear on the UI after the last selected row. Additionally, the order of the rows on the UI is
not changed.
If rows are deleted from the data table by feeder class, these rows are removed from the UI. Additionally, the order of rows on the UI is not changed.

Therefore, after changes to values (on the UI or by feeder class) or after deletion or insertion of rows (by feeder class), the services (sorting and filtering) should not
be executed. However, these services manage the mapping between the data table and the UI. Therefore, the services must be informed about changes to the
data table in order to actualize the mapping.
This section describes how to realize edit scenarios which allow the usage of services (sorting and filtering), and which conform to the current UI guidelines.

PUBLIC Page 62 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Prerequisites
 An appl ication works in round-trips (the phase model of FPM). The feeder class method GET_DATA  is called once per round-trip. The data is shown (and
perhaps changed) on the UI between two calls of GET_DATA .
The insertion and deletion of rows in the data table is only made in the feeder class method GET_DATA . Therefore, between two calls of this method, the
number of rows in the data table is constant.
Changes to values in any rows are possible (in method GET_DATA  and on UI).

Note
The following scenarios and programming examples must be extended if changes to the data table are made in the feeder class method FLUSH  (in
fact forbidden, b ut possible).

  1.2.1.12.14.1 Change Log


 A change log has been created which contains all changes needed for actualization of internal data of ATS.
The starting point is the before image of the data table (on entry of method GET_DATA ) and the end point is the after  image of the data table (after leaving the
method GET_DATA ). The editor change log describes the transition from the before to after images.
The application must create the change log, and then hand over to ATS.
The change log is described by the interface IF_SALV_ITAB_CHANGE_LOG . Its methods are described in the following table and screenshot. For further 
information, see the system documentation.

Table 1: Methods of IF_SALV_ITAB_CHANGE_LOG

Method Description
GET_INDEX_MAP Gets the in dices of the deleted rows (the before image), the indices of inserted rows (the
after  im age), th e mapping of rows between the before and after  image, and the indices
of rows (before image) which must be moved to an insert position.

GET_COLUMNS_MODIFIED Gets the names of columns in which values are changed. This method is optional; the
change log does not have to supply thi s inform ation, but th e ATS reacts faster if thi s
information is available.

GET_ROWS_MODIFIED Gets the indices of rows (after  image) in which values are changed. This method is
optional; the change log does not have to supply thi s in formation, but the ATS reacts
faster if this information is available.

DATA_IS_NEW This is TRUE  if the data is completely new, and no connection between the before and
after  images exists.

Note
Row numbers are always described as ranges in the change log. If a range consists of only one row, the lower and the upper value are the same.
The mapping of rows (  ET_MOVED ) describes how to map ranges of rows of the before image to ranges of rows of the after  image. The range in the
after  image is described only by the lower value, as the following example demonstrates:
((3, 5), 7) means that rows 3, 4 and 5 of the before image are mapped to rows 7, 8 and 9 of the after  image.
Entries in table ET_MOVED  of method GET_INDEX_MAP  are only needed for rows which change their position in the data table between the before
and after  images. Rows which do not change their position do not have to be listed in this table.

  1.2.1.12.14.2 Application Scenarios


The creation of a change log by feeder classes is supported by special classes of ATS. Dependent on this support, there are different application scenarios:
Unique Key Mode
The rows of the data table have a unique key. The key can consist of an arbitrary number of fields. You can edit the values of the key, but the uniqueness of 
the key must always be guaranteed for the whole data table. Additionally, arbitrary operations with the table are allowed.
Stable Line Order Mode

The application does not change the order of rows in the data table, but insert and delete operations are allowed.
Own Delta Handling
There is no support by ATS; the application is responsible for the creation of a correct change log.
No Delta Handling
There is no delta handling; after changes to data the services (sorting and filtering) are always executed. This is the behavior of the original List UIBB. This
behavior, naturally, does not conform to current SAP UI guidelines.

PUBLIC Page 63 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

In the Unique Key Mode and Stable Line Order Mode scenarios, the application can delegate the creation of change logs to helper classes of ATS (see below).
The application must guarantee special conditions (agreements). Violation of these agreements leads to erroneous mapping between the before and after image
and, therefore, a correct mapping cannot be calculated in all cases. Therefore, conformity with the current UI guidelines is not guaranteed. However, no data is lost.

Note
The existing feeder classes can be used furthermore with the new List ATS UIBB without changes. This corresponds to the 'no delta handling' scenario.

  1.2.1.12.14.2.1 Extension of Feeder Interface


The signature of the method GET_DATA  of the feeder interface is extended with an exporting parameter. This parameter must reference an object which
implements the interface for the editor change log, as the code below illustrates:

Together with the existing exp ort parameter EV_DA TA_CHANGED the following situations are possi ble:

EV_DATA_CHANGED EO_ITAB_CHANGE_LOG Meaning

FALSE is not observed Data not changed; change log is not observed. Services are

not executed
TRUE initial Data changed; change log not calculated. Services are
executed at new

not initial : DATA_IS_NEW( ) = TRUE Data changed; change log calculated but data_new is set.
Services are executed at new

not initial : DATA_IS_NEW( ) = FALSE Data changed; change log calculated (access via
get_index_map). Services are not executed

  1.2.1.12.14.2.2 Unique Key Mode


This section describes what an application must do to realize the scenario Unique Key Mode.

To-Dos for the Application


The flag EV_DA TA_CHANGED must always be set if changes to data are made inside the method GET_DATA .
The flag will not be set if changes are made by UI and accepted by the application.
The flag must also be set if only the order of the rows is changed (for example, by sorting the table).
The uniqueness of the key must always be ensured.
 App lies also for changes of keys on the UI.
 App lies also for insert operations, that is, new inserted rows should already have a unique key.
For the creation of the editor change log, the class CL_SALV_ITAB_EDITOR_KEY_MODE  can be used.
See below for programming example, and also the class documentation in the system.

Note
 A violation of uniqueness results in erroneous mappi ng between rows of the before and after  images. However, no data is lost.

 A selection of the methods for class CL_SALV_ITAB_EDITOR_KEY_MODE  are described in the following table:

Method Description
LOG_NEW_DATA Resets the change log ( DATA_IS_NEW  returns TRUE).
If you want to notify that new data exists using the change log, you can use the method
LOG_NEW_DATA  (see Extension of Feeder Interface).

START_RECORDING Starts recording of change log; an existing change log i s deleted.


The start of recording with this m ethod is absolutely necessary; the actual state of the
data table mu st be handed over as a parameter at the start.
The call of this m ethod deletes an existin g change log. Therefore, this method m ay be
called once within the method GET_DATA .

KEY_CHANGED Indicates that a key was changed.


The notification of key changes is essential for the calculation of a correct change log. If a
key is changed and no notification is made, it is assumed that any row is deleted and
any row is inserted. This is different behavior to changing a key (no new row, and row is
moved).

STOP_RECORDING Stops recording of change log.


Further access to the change log (usin g 'get' m ethods) are realized more quickly as the
change log does not h ave to be calculated for each access. But in principle the m ethod
STOP_RECORDING  is not required.

MOVE_TO_INSERT_POSITION Marks a row for moving to an insert position.

PUBLIC Page 64 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

The constructor of this class has the following parameters:


IT_KEY_NAME
Names of key fields
I_UI_CAN_CHANGE_KEY_FIELDS
Flag indicating whether changes of key fields are possible by UI
If no such changes are possible, a quicker calculation of the change log is possible.

Note
The calculation of the change log is expensive. It takes place either during a call of method STOP_RECORDING  or, if the method STOP_RECORDING  is not
called before, during a call of the get' methods of interface IF_SALV_ITAB_CHANGE_LOG  (see above).

Moving of Rows
 As described ab ove, the application knows of no connection between the data table and the UI, that is, it does not affect the order in which the rows of the data
table are displayed on the UI. In certain situations it is necessary to move rows around the UI. For example, when implementing the drag-and-drop of rows, it must
be possible to mark those rows in the data table which have to be moved in the UI to an insert position. For this reason, the class
CL_SALV_ITAB_EDITOR_LINE_MODE  has the methods MOVE_TO_INSERT_POSITION  and LOG_MOVE_TO_INSERT_POSITION . These methods can
be passed a row number that appears in the UI at the insert position. Several calls to these methods with different row numbers are possible. These rows are
shifted simultaneously. Changes to the data table are not necessary, that is, it is not necessary to move these rows inside the data table.

Programming Examples
The following programming example shows the principal construction of method GET_DATA  if the class CL_SALV_ITAB_EDITOR_KEY_MODE  is used for 
creating the change log. The application must start and stop the recording, must notify key changes, and must export the change log using the exporting
parameter.

Note
The constructor and the methods START_RECORDING  and KEY_CHANGED  can throw exceptions. In the programming example above, the handling of 
exceptions has been waived.

  1.2.1.12.14.2.3 Stable Line Order Mode


This section describes what an application must do to realize the scenario Stable Line Order Mode.

To-Dos for the Application


The flag EV_DATA_CHANGED  must always be set if changes on data are made inside the method GET_DATA .
The flag will not be set if changes are made by UI and accepted by application.
The order of rows in the data table must not be changed.

Sorting is forbidden.
Do not call routines (methods, function modules) which change the order of rows in the table.
Insert and delete operations are possible. However, no mapping is detected if a row is deleted and then inserted.
The class CL_SALV_ITAB_EDITOR_LINE_MODE  can be used for creating the editor change log.
See programming examples below, and also the class documentation in the system.

PUBLIC Page 65 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

This class contains methods for all table operations (except for LOOP  and READ ).
It is possible to execute all table operations themselves, and only use the log functions of this class.

Note
Changes in row order lead to erroneous mapping between the before and after  images. However, no data is lost.
If, in certain situations (for example during sorting), there is a need to change the order of table rows, it should proceed as if there is new data (run
method RESET ).

This class provides a complete set of operations to change a table. Reading operations (  READ , LOOP ) must be executed directly using ABA P statements.
 A selection of the methods for class CL_SALV_ITAB_EDITOR_LINE_MODE  are described in the following table:

Method Description

START_RECORDING Starts recoding of change log_an exis ting change l og deleted.


The start of recording with this method is absolutely necessary. During the start, the
current state of the data table m ust be handed over as a parameter. A m ethod for 
stopping th e recording i s not n eeded, and does not exist.
The call of this m ethod deletes an existin g change log. Therefore, this method m ay be
called once within the method GET_DATA .

SET_NEW_DATA Gets new data and resets the change log ( DATA_IS_NEW  returns TRUE.

Table Operations with Recording

APPEND_... Substitute for ABAP statement APPEND  (3 variants).

CLEAR_TABLE Substitute for ABAP statement CLEAR .

COLLECT_LINE Substitute for ABAP statement COLLECT .

DELETE_... Substitute for ABAP statement DELETE  (2 variants).

INSERT_... Substitute for ABAP statement INSERT  (3 variants).

MODIFY_LINE Substitute for ABAP statement MODIFY .

MOVE_TO_INSERT_POSITION Marks a row for moving to an insert position.

Only Recording of Table Operations

LOG_APPEND_ROWS Records appended rows.

LOG_DELETE_ROWS Records deleted rows.

LOG_INSERT_ROWS Records in serted rows.

LOG_NEW_DATA Resets the change log ( DATA_IS_NEW  returns TRUE ).


The method LOG_NEW_DATA  can be used if you want to notify u sing the change log
that new data exists (see Extensi on of Feeder Interface).

MOVE_TO_INSERT_POSITION Marks a line (row) for moving to an insert position.

Note
 All operations that change a table can be executed as ABAP statements too if, after each statement, the corresponding recording method LOG_... is called.
However, it is recommended that changes to a table are always made with the appropriate methods for such table operations.

Moving of Rows
 As described ab ove, the application knows of no connection between the data table and the UI, that is, it does not affect the order in which the rows of the data
table are displayed on the UI. In certain situations it is necessary to move rows around the UI. For example, when implementing the drag-and-drop of rows, it must
be possible to mark those rows in the data table which have to be moved in the UI to an insert position. For this reason, the class
CL_SALV_ITAB_EDITOR_LINE_MODE  has the methods MOVE_TO_INSERT_POSITION  and LOG_MOVE_TO_INSERT_POSITION . These methods can
be passed a row number that appears in the UI at the insert position. Several calls to these methods with different row numbers are possible. These rows are

shifted simultaneously. Changes to the data table are not necessary, that is, it is not necessary to move these rows inside the data table.

Programming Examples
The following code demonstrates how to replace ABAP statements for changing table content using calls of methods of class
CL_SALV_ITAB_EDITOR_LINE_MODE :

PUBLIC Page 66 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Note
If the corresponding ABAP statement returns any system fields (SY-...), the method has an exporting or returning parameter with the value of this
system field (see the signatures of the methods).
Regarding the validity of indices, the same rules apply as for the corresponding ABAP statements. Therefore, invalid values for insert indices, for 
example, lead to system dumps as they would in the corresponding ABAP statement.

Most of the methods above can throw exceptions. The handling of exceptions has been waived in the example code above.
The following programming example shows the principal construction of the method GET_DATA  if the class CL_SALV_ITAB_EDITOR_LINE_MODE  is
used for creating the change log. The application uses the methods for table operations (this is demonstrated by the deletion and insertion of a line in this
example):

Note
Note that the handling of exceptions is waived in the above example.

In the following programming example the table operations are made by ABAP statements and then recorded using recording methods:

PUBLIC Page 67 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Note
Note that the handling of exceptions is waived in the example above.

Both the programming examples above have a drawback; table operations using ABAP statements can be mixed with calls of methods for table operations.
This increases the occurrence of erroneous change logs. The following example avoids this problem and forces you to use methods for table operations in all
cases:

In the above example the entire code is moved to method GET_DATA_INTERNAL . The data table is transferred to this method using an importing
parameter. Therefore, inside the method GET_DATA_INTERNAL , ABAP statements for changing the table are no longer allowed. All changes relate to
calls of editor methods.

  1.2.1.12.14.2.4 Own Delta Handling


This section describes what an application must do to realize the scenario Own Delta Handling. The application is responsible themselves for the creation of the
change log.

To-Dos for the Application


The flag EV_DATA_CHANGED  must always be set if changes to data are made inside the method GET_DATA .
The flag will not be set if changes are made by UI and accepted by the application.
If the data table is changed, a change log must be created. The recording methods (  LOG_... ) of class CL_SALV_ITAB_EDITOR_LINE_MODE  may be
used. This corresponds with the second example of the preceding section.

  1.2.1.12.14.2.5 No Delta Handling


This case describes the behavior of the original List UIBB.

 
PUBLIC Page 68 of 110
© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

To-Dos for the Application


The flag EV_DATA_CHANGED  must always be set if changes to data are made inside the method GET_DATA .
The flag will not be set if changes are made by UI and accepted by application.
Note that the existing feeder classes can be used with the new List ATS UIBB without changes. But, of course, the behavior during edit scenarios does not
conform to the current UI guidelines under certain conditions.

  1.2.1.13 List ATS Component with Integrated Data Access (IDA)

Definition
The List ATS component with integrated data access (IDA) allows you to connect directly and easily with SAP HANA, taking full advantage of the greatly
enhanced performance features of such a system. This component is optimized for SAP HANA but can also be used with other underlying databases.
Without IDA, the List ATS component requires all data to be first loaded from a database into an internal table in order to display it. Functions such as sorting,
filtering and aggregation are then carried out on the data in this table, in addition to authorization checks being carried out on every single row.
With IDA, data is loaded into the List ATS component 'on demand'. All authorization checks, table functions and other operations normally carried out in the
application layer are now 'pushed down' to the database itself with the result that the List ATS component is able to retrieve and display huge amounts of data
tremendously quickly. Using the paging capabilities of both SAP HANA and the IDA interface, all data in the database can be displayed in the list in one go
(without the need for truncating data). The user is able to scroll smoothly through the list, and see the results of functions, such as sorting and grouping, on all data
in an instant.
IDA is available only to the List ATS component in Floorplan Manager applications. Currently, the List ATS with IDA component can be used only in read-only
scenarios.
To take advantage of IDA, the List ATS component implements the IDA interface, IF_FPM_GUIBB_LIST_IDA, inside its feeder class.
The overall structure of the List ATS component remains unchanged when using IDA; it is only the interface which the List ATS component implements inside its
feeder class that is different.

Structure at Runtime
 A list is disp layed as a table of rows and columns at runtime. Each item in a list is displayed in a sep arate row. A list has its own toolbar.
Each column of the list has a column header. If the application has enabled list functions such as sorting, filtering, and grouping, an arrow appears in the bottom-
right corner of the column header when you hover the mouse over the heading at runtime. The available menu options are determined by the relevant feeder class.
List components may contain an action column containing several one-click action controls.

Note
The overall structure of the List ATS component remains unchanged when using IDA; it is only the interface, which the List ATS component implements inside
its feeder class, that is different. For more information on the structure of the List ATS component, see the documentation for the List ATS component.

Note
Currently, not all features available in the List ATS component are available in the List ATS component with IDA. See the Release Notes for further details.

Editing the Structure at Design Time (FLUID)


You configure this component with FLUID, the FPM configuration editor.
 At design time, the Preview panel in FLUID disp lays the List ATS component in a WYSIWYG style.
In the General Settings panel, you can specify settings applicable to the list as a whole.
In the List UIBB Schema , you can speci fy attributes for the individual elements of the list.
For more information on the attributes of this c omponent in FLUID, c hoose Field Help from the context menu in the system.

Note
Settings for some properties of the List ATS component with IDA are necessarily different to those of the List ATS component alone.

For more information on configuring the Li st ATS component, see the documentation for b oth the List ATS Component and for FLUID.

The IDA Interface, IF_FPM_GUIBB_LIST_IDA


The IDA interface, IF_FPM_GUIBB_LIST_IDA , contains a similar set of methods belonging to those of the feeder class interface for the FPM List component,
IF_FPM_GUIBB_LIST .

  1.2.1.13.1 Features Common to Both List ATS and List ATS with
IDA Components
Not all features found in the interface of the List ATS component (  FPM_LIST_UIBB_ATS ) are currently available in the IDA interface
( IF_FPM_GUIBB_LIST_IDA ). This section describes the current position.
The following table describes the methods available to the List ATS with IDA interface in the current release of FPM:

Table 1:

Feature Where Defined Notes

PUBLIC Page 69 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Column Availability and Visibility   ET_FIELD_DESCRIPTION :  Availability and visibility of column s can be influenced by
TECHNICAL_FIELD (Availability) feeder class, configuration, and personalization in the
CT_FIELD_USAGE same way as it is with the List ATS feeder class.
VISIBILITY (Availability
FLUID (Visibility)
Personalization (Visibility)

Currency/Unit Reference Fields   ET_FIELD_DESCRIPTION :  A reference field is used for displaying values with the
CQ correct nu mber of decim al places. This also affects table
'C' = Currency, 'Q' = Unit functions like sorting, filtering and aggregation. The

CQ_REF declaration of the reference field in


Currency/unit reference field ET_FIELD_DESCRIPTION is optional. It overwrites
references declared in DDIC. If you use External Views, it
is n ot possible to declare references in D DIC. Here, you
need to define the reference field in
ET_FIELD_DESCRIPTION .You can provide texts such
as column labels in ET_FIELD_DESCRIPTION . It
overwrites texts that are stored in DDIC. If you use
External Views, it is not possible to provide texts in DDIC.
Here, you n eed to provide the texts in
ET_FIELD_DESCRIPTION .

Colum n-Specific Texts   ET_FIELD_DESCRIPTION : You can provide texts such as colum n labels i n
HEADER_LABEL ET_FIELD_DESCRIPTION . It overwrites texts that are
HEADER_LABEL_TOOLTIP stored in DDIC.
HELP_TEXT If you use External Views, it is not possible to provide texts
TOOLTIP in DDIC. Here, you need to provide the texts in

ET_FIELD_DESCRIPTION .
Field Groups (Special Groups)   ET_FIELD_DESCRIPTION : This is the same as for List ATS. It allows the application
SP_GROUP to group fields.
ET_SPECIAL_GROUP

Table Functions: Sorting, Filtering, Aggregation, and ET_FIELD_DESCRIPTION: FPM List with IDA supports table functions like sorting,
Grouping  ALLOW_SO RT filtering, aggregation, and grouping. These functions are
 ALLOW_FILTER pushed down to the database. These functions are
 ALLOW_AG GREGATION switched off by default, bu t can be enabled usin g these
FLUID flags for each colum n.
Example of a generic way to allow servi ces can be found in
the method CL_FPM_TEST_LIST_IDA_SFLIGHT-
>GET_FIELD_DESCRIPTIONS() .
The functions must be enabled in FLUID afterwards.

Initial Sorting, Grouping, and Aggregation FLUID Initial sorting, grouping, and aggregation can be defined in
FLUID
(SAP NetWeaver 7.4 sorting and grouping in SP03;
aggregation in S P04)

Personalization FLUID Application may choose one of the following options:


Personalization is disabled
Personalization is enabled
Personalization enabled with option for end user to
create own vi ews

 Application Functions and Toolbar    ET_ACTION_DEFINITION  Application may create toolbar buttons, and other elements
FLUID in toolbar in the same way as in List ATS feeder class,
using  ET_ACTION_DEFINITION ; design of the toolbar 
in FLUID must be made afterwards.

  1.2.1.13.2 Displaying Data from a Database Table or View

Context

Procedure
1. Create the feeder class.
The feeder class must implement the interface IF_FPM_GUIBB_LIST_IDA ; the methods are similar to those in interface IF_FPM_GUIBB_LIST .
2. Return the structure descriptor in IF_FPM_GUIBB_LIST_IDA~GET_DEFINITION .
The method GET_DEFINITION  is executed as it is in other UIBBs at both runtime and design time (FLUID).
method if_fpm_guibb_list_ida~get_definition.
  eo_structdescr ?= cl_abap_structdescr=>describe_by_name( 'SFLIGHT' ).
endmethod.
3. Create a Data Source instance in .
IF_FPM_GUIBB_LIST_IDA~START_RUNTIME
The method START_RUNTIME  is called once at runtime after GET_DEFINITION , but before the first call to PROCESS_BEFORE_OUTPUT . Keep the
Data Source instance reference as you will need it for the next phases.
Class private section:
  data mo_data_source type ref to if_fpm_list_data_src_db_table .

PUBLIC Page 70 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Implementation:
  method if_fpm_guibb_list_ida~start_runtime.
  mo_data_source = cl_fpm_list_source_factory=>create_for_db_table( iv_ddic_name = 'SFLIGHT' ).
  eo_data_source = mo_data_source.
  endmethod.
4. Create your FPM app lication with a List ATS UIBB (component FPM_LIST_UIBB_ATS), using the feeder class you created above.

  1.2.1.13.3 Restricting Data using Selection Criteria


Use method SET_DATA_SELECTION_CRITERIA  of the data source to set selection criteria in the feeder class method PROCESS_BEFORE_OUTPUT .
Selection criteria may be set only in PROCESS_BEFORE_OUTPUT ; if they are set anywhere else, an exception CX_FPM_LIST_CALL_OUTSIDE_PBO  is
raised.
We recommend you use the helper class CL_SALV_RANGE_TAB_COLLECTOR  to create selection criteria (but you may generate them on your own without the
helper class).
The sample code below details this scenario:
Class private section:
  methods get_selection_criteria
  exporting
  et_selection type if_salv_service_types=>yt_named_ranges.

Implementation:
  method if_fpm_guibb_list_ida~process_before_output.

  case io_event->mv_event_id.
  when if_fpm_guibb_search=>fpm_execute_search.
  get_selection_criteria( importing et_selection = data(lt_selection) ).
  mo_data_source->set_data_selection_criteria( lt_selection ).
  endcase.
  endmethod.

  method get_selection_criteria.
  clear et_selection.

  data lt_carrid_range type range of sflight-carrid.


  data lt_connid_range type range of sflight-connid.
  ...
  " IMPLEMENT: Get ranges from Search UIBB or other sources
  ...
data(lo_collector) = new cl_salv_range_tab_collector( ).

  lo_collector->add_ranges_for_name( iv_name = 'CARRID' it_ranges = lt_carrid_range ).


  lo_collector->add_ranges_for_name( iv_name = 'CONNID' it_ranges = lt_connid_range ).
  lo_collector->get_collected_ranges( importing et_named_ranges = et_selection ).
  endmethod.
 A complete example of the generic transformation of selection criteria from the Search UIBB can be seen in method
CL_FPM_TEST_SEARCH_IDA_SFLIGHT>IF_FPM_GUIBB_SEARCH~PROCESS_EVENT .

Using SAP HANA CalcViews with Placeholder Variables


 An applic ation may use a SAP HANA CalcView with placeholder variables. The variables can b e set using method SET_VIEW_PARAMETERS  of the data
source created in the feeder class method START_RUNTIME :
  method if_fpm_guibb_list_ida~process_before_output.

  mo_data_source->set_view_parameters( value #( ( name = 'SFLIGHT_PLACE_HOLDER' value = 'AA' ) ) ).

  endmethod.
 
You must not wrap the variable name with '$$' (unlike HANA SQL syntax).
The view parameters may be set only in the method PROCESS_BEFORE_OUTPUT ; setting these anywhere else will raise an exception
CX_FPM_LIST_CALL_OUTSIDE_PBO .

  1.2.1.13.5 Row Selection


The List ATS with IDA UIBB supports single row selection.

Context
There are API methods for the application to check for the existence of a selection, and to get the selected row. To do this, you must perform the following steps:

Procedure
1. A prerequisite for the use of this feature is that the database tab le or view has a unique key . If availab le, the key defini tion is taken automatically from DD IC.
However, the application can define its own key using the attribute IS_KEY  of the field description in the feeder class method GET_DEFINITION . If the

PUBLIC Page 71 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

provided key is not unique, the method GET_SELECTED_ROW  may throw a duplicate key exception. On the other hand, do not mark more fields than
necessary as key fields. The List ATS UIBB always reads key fields together with visible fields for each page of data. The more fields you read, the poorer 
the performance becomes.
2. When the key is known, the appli cation must allow single row selection in FLUID.
3. The appli cation gets the selected row from the List ATS UIBB using the importing parameter IO_ROW_SELECTION  of the feeder class method
PROCESS_EVENT .
The sample code below illustrates these steps:
method if_fpm_guibb_list_ida~process_event.

 
data ls_selected_row type sflight.
  data lt_field type if_fpm_list_ida_selection=>yts_field_name.
  data l_field like line of lt_field.

  case io_event->mv_event_id.

  when 'SHOW_DETAILS'.
  if io_row_selection->is_row_selected( ) = abap_true.
  try.
  l_field = 'SEATSMAX'.
  insert l_field into table lt_field.
  l_field = 'SEATSOCC'.
  insert l_field into table lt_field.
 
io_row_selection->get_selected_row(

  exporting
  iv_request_type = if_fpm_list_ida_selection=>cs_request_type-key_and_requested_fields
  it_requested_fields = lt_field
  importing
  es_row = ls_selected_row ).
  catch cx_salv_ida_sel_row_deleted.
  " do apropriate error handling here ...
  endtry.
  endif.
  endcase.

  endmethod.

Note
The application calls the method GET_SELECTED_ROW  only if a row is selected; calling the method GET_SELECTED_ROW  when no row is selected
raises an exception. Therefore, the application must first check for the existence of a row selection, using the method IS_ROW_SELECTED .
The parameters IV_REQUEST_TYPE  and IT_REQUESTED_FIELDS  of the method GET_SELECTED_ROW  are optional. These are described in the
following tabl e:

IV_REQUEST_TYPE IT_REQUESTED_FIELDS Result

IF_FPM_LIST_IDA_SELECTION=>CS_REQUEST_T Empty, or not supplied Key fields are filled; other fields are undefined
 
O ne or m ore requ ested fi el ds Key fi el ds, an d requ est fi el ds are fi ll ed; oth er fi el ds are
undefined

IF_FPM_LIST_IDA_SELECTION=>CS_REQUEST_T  Anything Row with all database fields is read


YPE-ALL_FIELDS

The method GET_SELECTED_ROW  always execute a SELECT statement on the database, regardless of what you request. If the selected row is
deleted, the exception CX_SALV_IDA_SEL_ROW_DELETED  is raised.
The handling of the exception is optional. The selected row may be read only in the method PROCESS_EVENT ; anywhere else results in an exception
CX_FPM_LIST_CALL_OUTSIDE_PE .

  1.2.1.13.6 (Fuzzy) Text Search


The application can use the text-search feature of the database.
The application can place a search string input field anywhere on the UI, usually in a Search UIBB or in the List ATS UIBB toolbar. Use the method
TEXT_SEARCH()->SET_SEARCH_TERM  of the data source to set the search string in the feeder class method PROCESS_BEFORE_OUTPUT , as detailed in
the sample code below:
  method if_fpm_guibb_list_ida~process_before_output.

  data lo_search_string type string.

  mo_data_source->text_search( )->set_search_term( lo_search_string ).

  endmethod
If the database supports fuzzy search, you can also set the field-similarity factor using the method TEXT_SEARCH()->SET_ FIELD_SIMILARITY  of the data
source in the feeder class method PROCESS_BEFORE_OUTPUT :
  mo_data_source->text_search( )-> set_field_similarity( '0.7' ).
Text search criteria may be set only in P  ROCESS_BEFORE_OUTPUT ; setting it anywhere else results in the exception CX_FPM_LIST_CALL_OUTSIDE_PBO .

 
PUBLIC Page 72 of 110
© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

  1.2.1.13.7 Complex Conditions


The application may need to create a data selection criteria that cannot be achieved using simple selection ranges.
For example, you search for flights with business or first-class seats. You can use a condition factory, obtained from the data source, to generate the required
condition.
method if_fpm_guibb_list_ida~process_before_output.

  data(lo_condition_factory) = mo_data_source->condition_factory( ).
  data(lo_condition) = lo_condition_factory->greater_than( name = 'SEATSMAX_B' value = 0 )->or(
  lo_condition_factory->greater_than( name = 'SEATSMAX_F' value = 0 ) ).
  mo_data_source->set_data_selection_criteria( io_condition = lo_condition ).

endmethod.
If you sup ply both parameters IT_SELECTION_CRITERIA  and IO_CONDITION  to the method SET_DATA_SELECTION_CRITERIA , both conditions are
combined with the AND operator. Supplying no parameter is the same as providing an empty condition; it means that any condition provided previously is
cleared.
Selection criteria may be set only in PROCESS_BEFORE_OUTPUT , setting anywhere else results in the exception CX_FPM_LIST_CALL_OUTSIDE_PBO .

Caution
The application must take care of NULL values in the conditions built by the condition factory. NULL values may appear, for example, in the database views
with outer-joins. If a database field contains NULL values in the database, and you create a condition that contains an initial value, but do not explicitly include
a NULL value, the result will not be as the user expects; NULL and initial values will appear to be the same to the end user. NULL values can be added to a
condition, as shown in the following example:

  lo_condition_for_one_field = lo_condition_for_one_field->or( lo_condition_factory->is_null( 'MY_FIELD_WITH_

The List ATS UIBB handles NULL values automatically for the parameter IT_SELECTION_CRITERIA  of method SET_SELECT_OPTIONS .

  1.2.1.13.8 Authorizations
The List ATS with IDA supports the pushing of authorization checks down to the database. The data is restricted according to the authorization restrictions of the
active user. The authorization check is based on the authorization object concept, but executed on the database. The application must define the required
authorization, and any mapping between the authorization object field, and the database field. The authorization check may be specified in the feeder class
method START_RUNTIME  using the method ADD_AUTHORIZATION_FOR_OBJECT  of the data source:
 method if_fpm_guibb_list_ida~start_runtime.

  mo_data_source->add_authorization_for_object(
iv_authorization_object = 'S_CARRID'
  it_activities = VALUE #( ( field = 'ACTVT' von = '03' ) )
  it_field_mapping = VALUE #( ( auth_field = 'CARRID' view_field = 'CARRID' )
( auth_field = 'CONNID' do_not_check = abap_true ) ) ).

 endmethod.
You may call this method several times for different authorization objects. Conditions for all objects must be fulfilled. Conditions are combined using the AND
operator.
The authorization check is defined only in the method START_RUNTIME ; if you define it anywhere else, an exception CX_FPM_LIST_AFTER_START_RUNTIM
is raised.

  1.2.1.13.9 Definition of Data Elements for Fields of an External


View
If you want to display data from an external view (for example, a view modeled in SAP HANA), the following issues arise:
Values in the list are not properly formatted; for example, date is displayed in an internal format
Column header titles are missing
To get around this, the application should create a structure descriptor by filling the parameter EO_STRUCTDESCR in the feeder class method
GET_DEFINITION  with the required types. If you do this, the value formatting, and column headers are taken from the data types used in that structure.

The sample code below describes how to change the data element for a field FLDATE from S_DATE to CHAR8.
method if_fpm_guibb_list_ida~get_definition.
  data(lt_components) = cast cl_abap_structdescr(
cl_abap_typedescr=>describe_by_name( 'SFLIGHT' ) )->get_components( ).

 " ************************************
" replace type for component(s)
lt_components[ name = 'FLDATE' ]-type = cast cl_abap_datadescr(
cl_abap_typedescr=>describe_by_name( 'CHAR8' ) ).
" ***********************************

  eo_structdescr = cl_abap_structdescr=>get( lt_components ).


endmethod.

Note
The types in the structure descriptor must be compatible with the type of the database type, that is, if the database type is character-based, then the type in

PUBLIC Page 73 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

the descriptor must also be character-based. The lengths of the values must also be equal. For example, you could use DATS or NUMC8 for a database type
CHAR8, but not INT4 for database type CHAR10.

  1.2.1.13.10 Retrieving Entire Dataset of a Row (Link Display


Types)
The feeder class is ab le to retrieve the entire dataset of a row, even when a cell containing a Link to Action or One-Clic k Action disp lay type is selected at
runtime.
This is made possible b y a new interface, IF_FPM_LIST_IDA_ROW_DATA , containing the method GET_ROW_DATA . This new interface is accessed through
the IF_FPM_GUIBB_LIST_IDA  interface ( PROCESS_EVENT  method, IO_EVENT_ROW_DA TA parameter).
The sample code below illustrates how you can achieve this:
method if_fpm_guibb_list_ida~process_event.
  data ls_row_data type sflight.

  if io_event_row_data is bound.
  io_event_row_data->get_row_data(
exporting iv_request_type = if_fpm_list_ida_selection=>cs_request_type-all_fields
  importing es_row = ls_row_data ).
  endif.

endmethod.

  1.2.1.13.11 Detection of Database Capabilities


 App lication developers can use available AP Is to determine which services are supported by the underlying database. This allows developers to program
alternatives for those applications using SAP HANA and those using non-HANA systems.
The List ATS with IDA component is able to display most types of data from most SAP-supported databases. Therefore, an application that is programmed to run
on any database must be aware of the capabilities of the database currently being accessed, and the features provided by the application must reflect these
capabilities.
 App lication developers can use a cap ability service to check which capabilities a database supports. Use the static method
CL_FPM_LIST_SOURCE_FACTORY=>GET_SOURCE_CAPABILITIES()  to call this service. The capability service imp lements the interface
IF_SALV_IDA_CAPABILITY_SERVICE . See the system documentation for further details about this interface and its methods.
This service allows you to check whether the database has the following capabilities:
Text Search
If a text search is not supported by the database, then the application shall not provide a text search input field (for example, in a Search GUIBB).
Limitation to Number of Selected Records
It is recommended to limit the number of records if the database does not support addressing records by a range of row indices. In this case, List ATS with

IDA transfers all records from the database into an ABAP internal table [ITAB]. To avoid performance issues, the application may display an input field for a
user to enter the maximum number of data rows (for example in a Search UIBB). The limit should be set in the feeder class method
IF_FPM_GUIBB_LIST_IDA~PROCESS_BEFORE_OUTPUT  by calling the method SET_MAXIMUM_NUMBER_OF_ROWS( )  of the data source (interface
IF_FPM_LIST_DATA_SRC_DB_TABLE ).
Support of DDIC External Views

Tip

For an example of how a Search UIBB may react to specific database capabilities, see the method IF_FPM_GUIBB_SEARCH~GET_DEFINITION  of the class
CL_FPM_TEST_SEARCH_IDA_SFLIGHT .

  1.2.1.13.12 Sorting according to Log-on Language (Sort Locale)


By default, List ATS with IDA sorts lists according to the log-on language. Application developers can overwrite this if they need to.
If a column contains language-dependent text, application developers can set the field description component SORT_AS_TEXT =
IF_FPM_CONSTANTS=>GC_ORDER_AS_TEXT-ON  to sort it according to the language-specific alphabet. The field description is provided by the feeder class
using parameter ET_FIELD_DESCRIPTION  of method IF_FPM_GUIBB_LIST_IDA~GET_DEFINITION .
There is a significant performance penalty for language-specific, alphabetical sorting; use this type of sorting only if necessary. By default, List ATS with IDA
uses language-s pec ific, alp habetic al sorting for all character and string columns that have set the flag Lower Case in their DDIC domain.
If the default sort strategy is not appropriate, use SORT_AS_TEXT = IF_FPM_CONSTANTS=>GC_ORDER_AS_TEXT-OFF  to ensure an optimal sort speed. For 
example, use binary sorting (SORT_AS_TEXT is off) for columns that contain codes or IDs, such as currency codes, country codes, material numbers, and
object IDs, and use language-specific, alphabetical sorting for columns that contain language specific country names.

  1.2.1.13.13 Suppressing Data Selection for a Search Results List


Data, to be displayed in a List ATS with IDA component that is used as a results list for a search component, can now be suppressed until the search is
executed; no data is displayed in the list component until the search is actually run.
List ATS with IDA selects data immediately when it is displayed for the first time. This behavior is not always desirable if the list is used as a search results list;
an empty search results list is often required when it is first displayed.
Data selection can b e supp ressed until a user actually p erforms a s earch.
To suppress data selection, use the method SET_DATA_SUPPRESSING  of the data source (interface IF_FPM_LIST_DATA_SRC_DB_TABLE ) in the feeder 
class method IF_FPM_GUIBB_LIST_IDA~PROCESS_BEFORE_OUTPUT .

 
PUBLIC Page 74 of 110
© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

  1.2.1.13.14 Sorting by External Value


 App lication developers should determine whether a list is to be sorted by external values (those values displayed at runtime) or internal values (the corresponding
values stored in the database).
Values displayed in a list at runtime (external values) may be different to the corresponding values held in the underlying database (internal values). The values
may have been converted, for example, by an ABAP conversion exit. Sorting at runtime may therefore produce unexpected results for the user if sorting is
performed using internal values.
Sort by External Value
List ATS IDA sorts lists by external value if sorting is performed in ABAP memory.
If values displayed in a column are converted by an ABAP conversion exit, the field description component is set to SORT_BY =
IF_FPM_CONSTANTS=>GC_ORDER_CRITERION-EXTERNAL_VALUE . The field description is provided by the feeder class using parameter 
ET_FIELD_DESCRIPTION  of method IF_FPM_GUIBB_LIST_IDA~GET_DEFINITION .
Sort by Internal Value
If sorting is performed by the database (as with SAP HANA), the field description component (  SORT_BY ) is ignored, and the data is sorted by values
stored in the database (internal values).
When using SAP HANA, sorting by external value is only possible if the application stores the external values in the database.
For further information on this topic , s ee the documentation for method IF_SALV_IDA_CAPABILITY_SERVICE=>IS_MAX_ROWS_RECOMMENDED  in the
system.
There is a significant performance penalty for sorting by the external value as all values in the table must be converted to the external format before they are
sorted. Therefore use sorting by external value only if necessary.
By default, the List ATS with IDA sorts by the external value if the data type of an internal value is a character or string; otherwise it sorts by the internal value. If 
necessary, application developers can force the List ATS with IDA to sort by the internal value using the parameter SORT_BY =
IF_FPM_CONSTANTS=>GC_ORDER_CRITERION-INTERNAL_VALUE .

  1.2.1.13.15 Interface: IF_FPM_GUIBB_LIST_IDA


Table 1: Methods of IF_FPM_GUIBB_LIST_IDA Interface

GET_DEFINITION:
All ows the feeder class to provide all necessary information for configuri ng a L ist ID A component: the lis t of avai labl e fields an d their properties, and the li st of 
actions (FPM events).

Parameter Description

EO_STRUCTDESCR Is of type CL_ABAP_STRUCTDESCR . It contains a set of all available columns. In the


configuration, colum ns can be added that belong to this set of columns .

ET_FIELD_DESCRIPTION Here you can provide the additional inform ation needed for the creation of the columns ,
for example, label texts and tooltips.

ET_ACTION_DEFINITION  A list of all actions (which will be transformed to FPM events at runtime) that you can add
to the toolbar through configuration.

ET_SPECIAL_GROUP Special groups can be u sed for a grouping feature in FLUID. If th e feeder class provides a
special group table it sh ould assign each field in the field description table to a group in
field SP_GROUP  . At design-time, the FPM configuration editor groups the fields. This is
an easier way to find fields if your field catalogue contains many fields.

GET_PARAMETER_LIST:
Cal led at design time and at run time when the Li st IDA component is created. It all ows you to define a l ist of the parameters that the feeder class su pports. Thi s li st
is used by the F PM confi guration editor to provide the i nput fi elds for these parameters.

Parameter Description

RT_PARAMETER_DESCR Is returned from this method. It describes which parameter is possible. In Field TYPE ,
the DDIC type needs to be entered.

INITIALIZE:

Cal led at design time and at run time when the Li st IDA component is created.
Parameter Description

IT_PARAMETER Contains a l ist of the feeder class parameters and the values for th em specified in the
configuration.

START_RUNTIME:
Called once at runtime during start up.

EO_DATA_SOURCE The feeder class m ust provide a data source; use this method to do so:
CL_FPM_LIST_SOURCE_FACTORY=> CREATE_FOR_DB_TABLE() .

FLUSH:
This method is called whenever an FPM event is triggered. Currently it contains no parameters. Usually this method is used to pass data changes made by the
user to the feeder class. However, as List ATS w/IDA is currently used for read-only scenarios only, this is not relevant at present.

Parameter Description

PROCESS_EVENT:
Cal led within the FPM event loop. Here the event processing can take place an d this is where the event can be canceled or deferred.

PUBLIC Page 75 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Parameter Description

IO_EVENT The FPM event w hich i s to be processed.

EV_RESULT The result of the event processing. There are 3 possible values:
ev_result = if_fpm_constants=>gc_event_result-OK
ev_result = if_fpm_constants=>gc_event_result-FAILED
ev_result = if_fpm_constants=>gc_event_result-DEFER

IV_RAISED_BY_OWN_UI Indicates whether the event originates from this UIBB.

IO_ROW_SELECTION Provides an AP I that can be used to retrieve in formation about selected rows.

IO_EVENT_ROW_DATA Provides an AP I that can be used to retrieve the complete dataset of a row w here an FPM
event occured. This is helpful, for example, wh en the colum n is of display type Lin k to
 Action or if it is a One Click Action column .

PROCESS_BEFORE_OUTPUT:
Cal led within the FPM event loop. Th is i s the last method within the event loop. I t is us ed to chan ge properties of colu mns, cell s or actions.

Parameter Description

IO_EVENT The FPM event w hich i s to be processed.

IV_RAISED_BY_OWN_UI Indicates whether the event originates from this UIBB.

CT_FIELD_USAGE Field usage to change. The field usage consists of the field attributes wh ich m ight change
at runtime (for example, enabled, and visible).

EV_FIELD_USAGE_CHANGED Indicates whether or not the field usage has been changed by this m ethod.

CT_ACTION_USAGE  Action usage to change. The action usage consists of the attributes related to actions
which might change at runtime. For example, visibility.

EV_ACTION_USAGE_CHANGD Indicates wh ether or not th e action u sage has been changed by the feeder class.

CS_ADDITIONAL_INFO Contains additional information that might be changed.

GET_DEFAULT_CONFIG:
Call this if you want to have a default configuration. Use it to call pre-configured form configurations when a user starts the FPM configuration editor. This avoids
the user, who uses a feeder class to create a form, hav ing to create it from the beginn ing.

Parameter Description

IO_LAYOUT_CONFIG Of type IF_FPM_GUIBB_LIST_CONFIG : This object provides the API to create a


default configuration.

CHECK_CONFIG:
Cal l thi s if you want to make your own appl ication-specific checks on the configu ration in the FPM confi guration editor i mmediately before savin g.

Parameter Description

IO_LAYOUT_CONFIG Of type IF_FPM_GUIBB_LIST_CONFIG : This object provides the API to r ead the
configuration to be saved.

ET_MESSAGES  A list of messages which shall be displayed in the message region.

  1.2.1.14 Personal Object Worklist (POWL) Component

Definition
 A generic design template for displaying data in a STANDARD POWL format.
It is implemented using the Web Dynpro component FPM_POWL_UIBB.
The information displayed in a Personal Object Worklist at runtime is determined by the settings in the POWL interface, .
IF_POWL_FEEDER
You use this design template in application-specific views (UIBB) when you want to display data in a worklist format. You determine the concrete display of the
data in a worklist when you configure the Web Dynpro component FPM_POWL_UIBB.

Note
This documentation focuses on the POWL component within FPM, and not specifically on POWL configuration. For more information on POWL configuration,
see the SAP NetWeaver Library.

Structure
 A POWL component is comprised of the following objects:
Master List
The POWL component, FPM_POWL_UIBB, can be configured as a master list within any floorplan.
Detail View
 All FPM UIBBs and GUIBBs can be configured as a detail view.
The detail view participates seamlessly in the FPM event loop.

PUBLIC Page 76 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Integration
You can configure a POWL component using the FPM configuration editor, FLUID.
In FLUID, you can configure the following properties of this component, as outlined in the table below:

FIELD NAME DESCRIPTION

 Application ID The POWL Application ID that is maintained in the POWL Cockpit. It is a mandatory
parameter.

 Active Query Name The query that is activated on load of the application. Data is selected from existing active
queries in the POWL back-end system.

Merge Query Selection Parameters Sets all the query selection parameters of all queries with the value of O verwrite Values
for Criteria .

Overwrite Values for Criteria A query selection parameter for all active POWL queries. If the checkbox for the field
Merge Query Selection Parameters is selected, the value in Overwri te Values for 
Criteria is applicable for all queries; otherwise, the value is applicable to the default
query only.

Use POWL Delta Rendering Enhances the browser performance during rendering.

Refresh All Queries Refreshes all active POWL queries registered for this application on every load of the
FPM application.

Refresh Query on Load Refreshes the default active query on load of the application.

 Application Server Group Use these parameters to set the details of the server group.

Theme Allows you to select the theme supported by POWL. The available options are Object
Worklist and Workflow Worklist .
Configuration Name The default POWL configuration provided by FPM.

Further properties of the POWL component can be edited in the standard Web Dynp ro editor by c hoosing Configure .

The POWL Component in FPM


With the FPM configuration editor, FLUID, you can configure a POWL component as a UIBB. Depending on the floorplan, you can configure a POWL component
as a master view in the following ways:
in a subview of an Object Instance (OIF) floorplan
in a main step or a substep of a Guided Activity (GAF) floorplan
in a section of an Overview Page (OVP) floorplan
in a Tabbed component in a master UIBB
in a Tabbed component in a tab UIBB

in a dialog box

Related Information

  1.2.1.14.1 Configuring a POWL Component in FPM

Context
To configure a POWL component, complete the following steps:

Procedure
1. Run the appl ication, and launch FLUID, the FPM configuration editor, in configuration mode (development mode).
2. Add the POWL UIBB.
1. On the <Floorplan> Schema panel, select the place where a new POWL UIBB is to be added.
2. Choose the Add UIBB button, and selec t POWL Component . The following values are inserted automatically b y the sys tem to identify it as a
POWL component:
Component: FPM_POWL_UIBB
Window Name: POWL_WINDOW
3. Enter a configuration name. This is a mandatory field if you want to be ab le to configure the POWL UIBB. It is not necessary to enter an exi sting
configuration; you can create a new configuration in the next steps.
4. (Op tional) Op en the Attributes panel to disp lay the attributes of the UIBB. Edit the remaining attributes such as Location , Container Stretching ,
Sequence Index and Instance ID .
5. Save your entries. If you are not using an exis ting POWL configuration, an error message app ears to say your configuration does not exist. You will
create this in the next steps .Note that you can also drag and drop an exis ting POWL c omponent configuration from the Repositories panel onto the
<Floorplan> Schema panel.

3. Configure the POWL UIBB


1. Select e the inserted POWL UIBB and choose the Configure UIBB button.
2. In the Editor for the Web Dynpro ABAP Component Configuration screen, c hoose New to create your new POWL configuration, and enter the
description and package details in the dialog boxes that follow. The system opens the FPM configuration editor with the name of the new configuration
displayed in the header.

PUBLIC Page 77 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

3. Enter an existing Appli cation ID . The input help selects exi sting configurations from the POWL Cockpit. When you enter an app lication ID, the
system automatically updates the field Configuration Name with FPM_POWL_CONFIG , the default configuration provided by FPM.

Note
The default configuration FPM_POWL_CONFIG  has the following attributes enabled to ensure that the FPM configuration is compliant with the
most recent guidelines:

Note
Enable FPM
Enable New UI
Display ALV Dialog as Popup

You can choose your own POWL configuration and enable these attributes yourself. The remaining attributes are features that POWL itself offers.
4. Choose Configure . In the Editor for the Web Dynp ro ABAP Component Configuration screen, c hoose Continue in Change Mode . The Web Dynpro
default editor is opened.
5. In the Component-Defined assi gnment block , choose the c onfData node to disp lay the POWL attributes.
6. Save your changes.

  1.2.1.14.2 The POWL Component at Runtime


The POWL UIBB provides you with FPM events which can be handled in the following ways:
In the detail UIBB
Events are handled in the feeder class of the GUIBB, or in the Web Dynpro component which implements the IF_FPM_UI_BUILDING_BLOCK  interface.

In FPM`s CONF_EXITS  methods


Events are handled by the applications themselves as required.
The available events are described in the following table:

Event Name Description

FPM_GUIBB_POWL_ON_LEAD_SELECT This event i s triggered by FPM when a l ead selection event occurs i n the PO WL
worklist. The event parameters supplied with this event are:
POWL_SELECTED_LINE_INDEX  (type in teger)
The value is the selected index in the POWL worklist.
POWL_SELECTED_LINE_DATA  (type ref to data)
The data object refers to the data in the l ine wh ich is lead-selected in the POWL
worklist.
POWL_CURRENT_TYPE  (type POWL_type_ty)
The type associated with the query on whi ch the lead selection event has
occurred.

FPM_GUIBB_POWL_ON_QUERY_SWITCH This event is triggered by FPM when there is a query switch operation performed by the
user. The event parameters supplied with this event are:
POWL_SELECTED_QUERY_DATA  (type POWL_query_sty)
The value is the details about the newly sel ected query.
POWL_CURRENT_TYPE  (type POWL_type_ty)
The type associated with the n ewly selected query. To handle the functionality i n
the detail UIBB, you can use ju st the information about the type of the newly
selected query or all  the details of the newly selected query

FPM_GUIBB_POWL_ON_NEW_QUERY This event is raised when you click the New Worklist button on the POWL component
toolbar.

FPM_GUIBB_POWL_ON_CHANGE_QUERY This event is raised when you click the Change Worklist button on the POWL
component toolbar.

Actions from Detail UIBB


The following actions can be triggered by the detail UIBB:
Trigger a refresh of the POWL worklist.
This is achieved by raising the FPM event POWL_REFRESH . The FPM framework informs the POWL to refresh the worklist.
Request a follow-up from POWL
This is achieved by raising the FPM event POWL_FOLLOW_UP  with the following event parameters: ADD_EVENT_DATA  (type REF TO DATA ) and
EVENT_PARAMETERS  (type POWL_NAMEVALUE_TTY ).

Note
It is not necessary to provide information about the detail component in the feeder class of the POWL (method
IF_POWL_FEEDER~GET_DETAIL_COMP ) as the UIBB, configured in FPM, acts as a detail for the POWL by reacting to the above FPM events.

Note
 At runtime, the actions Query Switch and Refresh List result in the removal of any previous lead selection in the table

  1.2.1.15 Search Component

PUBLIC Page 78 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Definition
 A generic design template for displaying search queries and search results.
It is implemented using the Web Dynpro component FPM_SEARCH_UIBB and the Web Dynpro interface view SEARCH_WINDOW.
The information displayed in a search at runtime is determined by the feeder class assigned to the configuration of the Web Dynpro component
FPM_SEARCH_UIBB.

Use
You use this design template when you want to have a search page or search function available. You determine the concrete display of the search component
when configuring the Web Dynpro component FPM_SEARCH_UIBB.

Structure at Runtime
The following figure shows how a search component might look at runtime:

Figure 1: Search Component at Runtime

 A search component consists of the following areas:


Search Area
The search area contains all the fields and functions to specify the search criteria and start the search. The field labels, operators, and search fields of the
search criteria (search statements) obtain their values from the feeder class at runtime. Search criteria may be grouped.
You can hide the search criteria at runtime to provide more space on the screen for the search results.
Search Results List
If configured, the search results list is displayed below the search area.
To display a search result, the columns and the initial sorting of the results list must be determined in the configuration. The search results list can be
provided by a separate component altogether, a list component based on a configuration of the FPM_LIST_UIBB_ATS component.
Saved Searches
If you regularly search for certain items, sav e time by savi ng your searches . You can save any searches y ou define by choosing the Save Search As
button. You can call up these searches again by choosing them from the Saved Searc hes dropdown list box.
The following buttons are always present at runtime:
Search
When the cursor is positioned in a search value, the search will start when this button is pressed.
Clear Entries
This button clears all search fields, but does not reset the result list or the search statements (that is, attributes and operators remain unchanged, and lines
are not removed). This button also clears the Save Search As field and Saved Searches field, but the Maximum Number of Results field remains
unchanged.
Reset to Default
This button rolls all search criteria back to the predefined default state (that is, the predefined combination of search criteria that was configured for the
search). It clears all search fields as well as the Save Search As field, and also clears the search result list if the standard result list is used.

PUBLIC Page 79 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Editing the Structure at Design Time (FLUID)


You configure this component using the FPM configuration editor, FLUID.
 At design time, the Preview panel in FLUID disp lays the Search component in a WYSIWYG style.
In the General Settings panel, you can speci fy settings app licable to the Search component as a whole.
In the Search UIBB Schema , you can speci fy attributes for the indivi dual elements of the Search component, as well as adding search criteria, s earch groups,
and adding a List component to display the search results list.
In FLUID, a search component is comprised of the following objects:
Search Attributes
These are the attributes that a user can use to build up a search query, e.g. cost center, personnel number or area code, etc. Each search attribute has a
certain ABAP data type. From this ABAP data type, a particular meta type is derived. The existing predefined meta types are: text, alpha numeric,
numeric, date, enumeration, and Boolean.
The following table shows the mapping in the standard delivery:

ABAP Data Type Meta Type

Character or string Text

Char or string with 2 values in domain Boolean

Char or string with more than 2 values in domain Enumeration

Numeric, integer, packed, float, hexadecimal Numeric

Date, time Date

Others Text

It is possible to overwrite the standard mapping by using the field description in the feeder class.

Search Operators
These are operators such as is, is greater than, or is between that the user can combine with search attributes in order to build up the query. Each search
attribute gets a default set of search operators assigned. The content of that set depends on the meta-type of the search attribute. The table below shows the
search operators that are available for the different search attribute meta-types.
The set of search operators can be modified in the feeder class (see later in this section):

Meta Type/Property Search Operators

Text (TE) Is (01), is not (02), is empty (03), contains (05), starts with (04), is not empty (23)

 Alpha numeric (AN) Is (06), is not (07), is empty (03), is not empty (23), contains (05), is between (10), is
greater than (08), is less than (09), is greater than or equal to (19), is less than or 
equal to (20)

Numeric (NU) Is (06), is not (07), is empty (03), is not empty (23), is between (10), is greater than
(08), is less than (09), is greater than or equal to (19), is less than or equal to (20)

Date (TD) Is (01), is not (02), is between (10), is earlier than (11), is later than (12), is earlier  
than or on (21), is later than or on (22)

Enumeration (EN) Is (01), is not (02), is empty (03), is not empty (23)

Boolean (BO) Is (01)

Note
There is an additional operator is similar to (24). This operator is not in the default set of operators; it can only be expl icitly added in the field_descri ption
of a search attribute (see later in this section). The constants for these operators are defined in the interface IF_FPM_GUIBB_SEARCH , attribute
GC_OPERATORS .

Search Values
These are the values that are used for the search. There is one input field where the user can enter a value. However, if the user chooses the search
operator is between two input fields are display ed in order to buil d up a range. For the operator is empty no input field is displ ayed.
Search Row
 A search row is a combination of one search attribute, plus one search operator, plus one search value (or two in the case of a range).
Search Query

 A search query consists of one or several search rows.


For more information on the attributes of this c omponent in FLUID, c hoose Field Help from the context menus in the sys tem.

Feeder Class Properties of the Search Component


In the feeder class of this component, the following properties can be determined:
 Assignment of multiple search values for one search criterion
The application can use the feeder class to define for a search criterion whether a user can enter multiple search values at once into a search line. This
simplifies, for example, the structure of a search for the qualifications an applicant must fulfill. Instead of defining a separate search line for each individual
qualification (such as English = fluent, work experience = 3 years), the user can now merge all of the qualification characteristics into one search line. The
user does this with a selection box provided by the appl ication. You can open this selection box using the Edit button.
Free text search
Using the feeder class, the application can define whether a free-text search is possible in the application. If a free-text search is enabled, the system
reserves the top search line in the search dialog box for the free-text search. In the standard system, three more search lines are available for additional
search c riteria.
Exclude Criteria
The search query can be enhanced by us ing criteria to exclude certain records from the results list. If an application uses the exclude criteria, an Add
Criteria To Exclude hyperlink is visib le under Search Criteria during runtime, and an Exclude Criteria dropdown list is visible in the General Settings
panel in FLUID, the FPM configuration editor. You can use this dropdown list to enable or disabl e the Exclude Criteria hyperlink that appears at runtime.
Saved Searches

PUBLIC Page 80 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

The feeder class determines whether or not the Saved Searches or Save Search As buttons are displayed at runtime.
Search Operators
Which search operators are permitted for each field label is determined in the feeder class.

  1.2.1.15.1 Enter, Reset, and Clear Buttons


Enter: When the cursor is positioned in a search value the search will start when pressing enter.Clear: The Clearbutton clears all search fields, but does not reset
the result list or the search statements (that is, attributes and operators remain unchanged, and lines are not removed).The Clear button also clears the Save
Search As field and Saved Searches field, but the Maximum Number of Results field remains unchanged. Reset: The Reset button rolls all search criteria back to
the predefined default state (that is, the predefined combination of search criteria that was configured for the search). Reset Page clears all search fields as well
as the Save Search As field. Reset Page also clears the search result list if the standard result list is used.

  1.2.1.15.2 Defining a Results List for the Search Component


 After executing a search using a Search component, the results must be disp layed in a results list.

Context
You can choose from the following alternatives when defining a result list:
Use a separate List ATS component (Recommended)
You can do either of the following:
Use the Composite Search (Recommended)
You can add and configure a List ATS component directly in FLUID within the Search UIBB. Use the Add List UIBB button on the toolbar of the
Search UIBB Schema panel to do this. In the General Settings panel of the List ATS UIBB, there is a field Table Is Search Result List . If this is
selected, then the visible row count is changed to 10. This field is automatically selected if you create the List ATS UIBB in the configuration editor of 
the Search UIBB.
Create a separate List ATS component in the floorplan
You must implement the reset functionality, and you are also responsible for the communication between the Search UIBB and the results list. You
can use wiring, for example, for this communication.
Use the standard result list from the Search UIBB
This list is very si mpl e; it has no toolbar. If you want to use this list, define the parameters EO_FIELD_CATALOG_ RESULT and
ET_FIELD_DESCRIPTION_RESULT in the method G ET_DEFINITION .
The reset functionality works automatically.

Note
The List component used in this method is the original List component which has now been superseded by the List ATS component. The List ATS
component offers more in-built features such as sorting and filtering.

Related Information
List ATS Component

  1.2.1.15.3 Refining the Search Results List using Exclude Criteria


When you define search statements, you can use the Exclude Criteria feature to refine and reduce the search results list.

Enabling Exclude Criteria


You can enable Exclude Criteria in the FPM configuration editor, FLUID, in the General S ettings panel for the Search component. You have the following options
for the Exclude Criteria fiel d:
Enabled (and Disabled)
Defined by Feeder 
The feeder class of the Search component can activate this feature using method GET_DEFINITION , parameter ES_OPTIONS , and attribute
ALLOW_EXCLUDE_CRITERIAS = ABAP_TRUE .

When Excl ude Criteria is enabled, the Add Criteria to Exclude link app ears on the search screen at runtime. When this link is clic ked, a new Exclude Criteria
area appears on the screen.

Defining the Criteria for Exclude Criteria


Once Exclude Criteria is enabled, you can define in the Search feeder class which search criteria are displayed in the Exclude Criteria area at runtime. You
define this in the feeder class method GET_DEFINITION  as follows:
If you define nothing, then all search criteria are displayed in the Exclude Criteria area.
If you do not want to display a particular search criterion in the Exclude Criteria area, you must set the following value in the field description of the feeder 
class method IF_FPM_GUIBB_SEARCH->GET_DEFINITION  for this search criteria :
ls_descr_attr-exclude_criteria
  = if_fpm_guibb_constants=>gc_use_as_excl_search_crit-use_not_as_excl_crit

When the search is executed, all results found by the Exclude Criteria area are removed from the overall search results list before the search results list is
displayed.

  1.2.1.15.4 Dependent Searches

PUBLIC Page 81 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

This feature relates to the OVS (Object Value System) value help in the Search component. You can influence the content of the F4 value help dialog box, based
on what is currently selected for the search attributes on the screen.
For examp le, a user selects France from the dropdown list in the search criterion Country at runtime; accordingly, the search criterion City should only disp lay
cities in France in its dropdown list.
To activate this feature, you must implement the OVS interface IF_FPM_GUIBB_OVS_SEARCH .
This interface contains the method SET_CURRENT_SEARCH_CRITERIA . It indicates what is currently selected in all rows of the search criteria before an OVS
round-trip is started.
You can find the following example in the system:

Table 1:

Component Name

WD application configuration:   FPM_TEST_DEP_SEARCHES

Search component configuration:   FPM_SEARCH_TEST_DEP_1

Search Feeder class:   CL_FPM_TEST_SEARCH_DEP

  1.2.1.15.5 Grouping Search Criteria


Search cri teria in a Search component can be grouped together into a Search Group , allowing for improved organization of the data as well as the screen sp ace.
The following screenshot shows an examp le of search criteria grouped together into Search Groups (note that a Search Group can be exp anded and collapsed):

Figure 1: S earch Gr oups

Defining a Search Group


 A Search Group is defined in the FPM configuration editor, FLUID.
To do this, proceed as follows:
1. Choose the Add Search Group button in the Search UIBB Schema panel, as the following screenshot shows, and edit the Standard Attributes as
required.

PUBLIC Page 82 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Figure 2: Search UIBB Schema Pan el

2. Assign a Search Criteria element to the Search Group using drag-and-drop in the Search UIBB Schema panel.

Grouping Search Attributes


You can further organize your groups by grouping the individual search attributes (fields) together. For example, in the first screenshot above, if you had several
Currency fields displayed, you could also group them together under a collapse/expand icon.
To do this, you must select the Group Same Criteria field in FLUID (in the General Settings panel).
For more information, see the system text for this field.

  1.2.1.15.6 Using Multi-Value Fields


Multi-value (MV) fields provide the end-user with the opportunity to define his or her own input field containing multiple input data.

Context
The different input values are entered by the end-user in a dialog box. This data is formatted by the FPM, and is displayed on the search screen, as the
screenshot below illustrates:

The application defines the dialog box which the users use to enter the multi-value data. An example of such a dialog box is shown below:

To use such a multi-value field, the application developer must perform the following steps:

PUBLIC Page 83 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

You can use the following example in the system:


Web Dynpro application configuration: FPM_TEST_ADV_SEARCH_CONF
Search UIBB component configuration: FPM_TEST_ADVANCED
Web Dynpro component of dialog box: FPM_TEST_MULTIPLE_DIALOG

Procedure
1. In method GET_DEFINITION , define a field (type STRING ) in the field catalog.
In our example, it is S_BUSINESS_PARTNER-REGION .
2. In method GET_DEFINITION , enter the attribute FIELD_DESCRIPTION- MULTI_VALUE_STRUCT  for the MV criteria.
This field is of type CL_ABAP_STRUCTDESCR . The components of this object are the input values of the dialog box. The simplest way to provide these
fields is to create a flat DDIC structure containing the fields, and then get it using FIELD_DESCRIPTION-MULTI_VALUE_STRUCT ?=
CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_DATA( … ) . You can make the field read-only by setting the parameter ES_O PTIONS-
SET_MULTI_ATTR_TE_READ_ ONLY to ABAP _TRUE .
3. Create a Web Dy npro component for the dialog box, and implement the interface IF_FPM_UI_BUILDING_BLOCK . Design the view with your input fields.
4. In the component controller of the WD comp onent, define the context with your input fields .
5. Map the context from the component controller to the view context.
6. Op en the FPM component configuration (in our example, FPM_TEST_ADV_COMP ), and open the Navigation panel to add a dialog box. The name of the
dialog box must be concatenated in the following way: FPM_SEARCH_DIALOG_<CONFIG_KEY-CONFIG_ID>_<NAME OF MV ATTRIBUTE> . In our 
example, the name is: FPM_SEARCH_DIALOG_FPM_TEST_ADVANCED_REGION .
If you do not want to use the concatenated name for the dialog box ID, you can set the parameter ES_O PTIONS-USE_STD_ DIALOG_ MULTI_EDIT =
 ABAP_TRUE in the feeder class method GET_DEFINITION . Then you can use the dialog box ID FPM_SEARCH_STD_DIALOG  instead of the

concatenated ID.
7. When you close the dialog box, you must raise the FPM event IF_FPM_CONSTANTS=>GC_EVENT-CLOSE_DIALOG . In our example, this is done in the
DIALOG_VIEW  in the method ONACTIONSEND_CLOSE .
8. Implement the method PROCESS_EVENT  in the component controller. Here, you can react on the FPM event IF_FPM_CONSTANTS=>GC_EVENT-
CLOSE_DIALOG . You must create and raise the FPM event IF_FPM_CONSTANTS=>GC_EVENT-MULTIPLE_VALUE . With this event, you pass the
multi-value data which was entered in the dialog box to the Search component. Set the following values for this event:
lo_event->MO_EVENT_DATA-> set_value( iv_key = if_fpm_guibb_search=>event_param_multi_name
  iv_value = <name of MV attribute> ).
  lo_event->MO_EVENT_DATA-> set_value( iv_key = if_fpm_guibb_search=>event_param_multi_struct
  iv_value = <data entered for MV attribute>.
In the Search component, the values passed by this event are automatically formatted. The separation between the two input fields from the dialog box is
defined in ES_OPTIONS-MULTI_ATTR_SEPARATOR .
9. There is an option that allows the appl ication, and not the Search c omponent, to format the multi-value string. The app lication pas ses a formatted multi-value
string table. This string table will be displayed in the Search component. The application passes this string table as an event parameter 
(IF_FPM_GUIBB_SEARCH=>EVENT_PARAM_MULTI_STRING_TABLE)  of the event IF_FPM_CONSTANTS=>GC_EVENT-MULTIPLE_VALUE . This
can be done in the component controller, in method PROCESS_EVENT :
lo_event->MO_EVENT_DATA->set_value( EXPORTING iv_key = if_fpm_guibb_search=>event_param_multi_string_table iv_

10. Check the FPM event IF_FPM_CONSTANTS=>GC_EVENT-OPEN_DIALOG  in the method PROCESS_BEFORE_OUTPUT  of the component controller of 
your MV Web Dynpro component. The event parameters contain the input of the multi-value field in the Search component. You need this data to fill the
input fields of your dialog box correctly. Reading of the event parameters is done in the following way:
io_event->MO_EVENT_DATA->get_value(
  EXPORTING iv_key = if_fpm_guibb_search=>event_param_multi_name
  IMPORTING ev_value = <name of multi value attribute>).
io_event->MO_EVENT_DATA-> get_value(
  EXPORTING iv_key = if_fpm_guibb_search=>event_param_multi_struct
  IMPORTING er_value = <values of multi-value attribute>).
In our example, this is done in the method PROCESS_BEFORE_OUTPUT  of the component controller in the WD application
FPM_TEST_MULTIPLE_DIALOG .

  1.2.1.15.7 Search Attributes with Conversion Exits or Range


Conversion
The data displayed on a user interface is often stored in a different format by the system in internal tables. Conversion exits consist of two function modules which
take care of the transformation of the data to and from the internal tables to the UI. Range conversions carry out a similar function to conversion exits, but act on a
range of data as opposed to single values.
If the data element of a search attribute has a conversion exit, developers must distinguish between an internal and an external format for the search value. To do
this, developers can use the option USE_EXTERNAL_FORMAT  in the feeder method GET_DEFINITION

Note
Conversion exits are defined at domain level. To check which conversion exit a data element is using, display the screen for the domain of the particular data
element, and chec k the Conversion Routine field. If there is als o a function module with a name in the following format,
CONVERSION_EXIT_<exit_name>_RANGE_I , then the search attribute also has a range conversion.

Examples of both coversion exits and range conversions are provided in the following sections.

  1.2.1.15.7.1 Conversion Exits


Examples of existing conversion exits.

PUBLIC Page 84 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Example
Conversion Exit ALPHA
The ALPHA conversion is used particularly with account numbers. During conversion from the external to the internal format, the system checks to see if input
in the input field is purely numeric, or whether it contains spaces before or after the numbers. If it is purely numeric, then the number string is inserted right-
 justified in the display output field, and all spaces to the left of the value are filled with zeros. If the input is not purely numeric, it is inserted in the display field
from left to right and all extra spaces are filled with blanks.

Tip
See the data element ADRNR in the system for an example of a data element with conversion exit ALPHA.

This is detailed in the tables below (note that both input and output fields are both eight characters in length).

Table 1: Function Module CONVERSION_EXIT_ALPHA_INPUT

Input (External Format) Output (Internal Format)

'1234 ' 00001243

'123*' 123*

'ABDC ' ABCD

' ABCD ' ABCD

' 1234 ' 00001234

Table 2: Function module CONVERSION_EXIT_ALPHA_OUTPUT:

Input (Internal Format) Output (External Format)

00001243 1234

123* 123*

 ABDC ABCD

 ABCD ABCD

001234 123400

Example
Conversion Exit ISOLA (Language)
The ISOLA conversion exit converts internal (length 1) to external (length 2) language formats. Table T002 (Language Keys) is used for the
transformation.

Note
See the data element SPRAS is an example of a data element with conversion exit ISOLA.

Table 3: Function Module CONVERSION_EXIT_ISOLA_INPUT

lnput T002-LAISO (External Format) Output T002-SPRAS (Internal Format)

DE D

TH 2

ES S

Table 4: Function Module CONVERSION_EXIT_ISOLA_OUTPUT:

lnput T002-SPRAS (Internal Format) Output T002-LAISO (External Format)

D DE

2 TH

S ES

PUBLIC Page 85 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Figure 1: Table T002 (Lan guage Keys)

  1.2.1.15.7.2 Range Conversion


Often, a single, external statement such as 'Language starts with A' results in a range containing several rows of data (for example, LANGUAGE = AR and
LANGUAGE = AF).
The following examples detail the use of two range conversions, ALPHA and ISOLA.

Example
Range Conversion: ALPHA

Table 1: Function module CONVERSION_EXIT_ALPHA_RANGE_I:

externlnput RANGE_EXT (External Format) Output RANGE_INT (Internal Format)

I CP 1* I CP 1*
I CP 01*
I CP 001*
I CP 0001*
I CP 0001*
I CP 00001*
I CP 0000001*
I CP 00000001*

I BT 56 123 I BT 00000056 00000123

Example
Range Conversion: ISOLA
Table 2: Function module CONVERSION_EXIT_ISOLA_RANGE_I:

externlnput RANGE_EXT (External format) Output RANGE_INT (Internal format)

I EQ DE I EQ D

I CP E* I EQ 9
I EQ E
I EQ G
I EQ S

I BT SR TH I EQ 0
I EQ 2
I EQ V

I CP A* I EQ A
I EQ a

Note
In both examples, both input and output fields are both eight characters in length.

PUBLIC Page 86 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Deciding which Format to Use


The application developer must decide if the internal or the external format of a value is passed in table FPMGB_T_SEARCH_CRITERIA in the feeder class. This
can be achieved using the parameter USE_EXTERNAL FORMAT  in ES_OPTIONS  of method GET_DEFINITION , as detailed below:
USE_EXTERNAL_FORMAT = ABAP_FALSE
In this case, the search values are rendered in the external format at the front-end. If an internal format is entered this will be automatically changed to the
external format.
In the feeder class methods the values will be passed in the internal format, for example, in table IT_SEARCH_CRITERIA in feeder class method
PROCESS_EVENT . A range conversion exit will not be considered.
Table 3: Example: ALPHA, Operator “is”

I npu t i n S ea rch Va lu e F iel d D is pl ay ed i n S ea rch Va lu e F iel d ( Ex ter na l F or ma t) I T_ FP M_ SEA RC H_ CR ITER IA -L OW( I nter na l
Format)

000012 12 00000012

12 12 00000012

 ABC ABC ABC

123* 123* 123*

Table 4: Example ISOLA, Operator “is”

Input in Search Value Field Displayed in Search value field (External Format) IT_FPM_SEARCH_CRITERIA-
LOW(Internal Format)

DE DE D

D DE D

S ES S

2 TH 2

D* Error: Language D* not in System -

USE _EXTERNAL_FORMAT = ABAP_TRUE


In this case, the search values are rendered as character fields with the output length defined in the dictionary at the front-end. In the feeder class methods,
the values will also be passed in the external format, for example, in table IT_SEARCH_CRITERIA in feeder class method PROCESS_EVENT .
In the feeder class method GET_DATA , data can be sup pli ed for attributes in internal or external format (set the parameter EXT_PRESENTATION
accordingly). In the feeder class methods, for example PROCESS_EVENT , the data is passed in external format (since there might be no simple internal
format for the values that the user entered).
 Attributes with range conversion: A range conversion exit will be executed in the conversion method for FPM operators to ABAP options (see the section
Conversion of FPM Attributes to ABAP Options).

Table 5: Example: ALPHA, Operator “is”

Input in search value field Displayed in Search Value Field (External Format)   IT_FPM_SEARCH_CRITERIA-LOW  (External Format)

000012 12 12

12 12 12

 ABC ABC ABC

123* 123* 123*

Table 6: Example ISOLA, Operator “is”

Input in search value field Displayed in Search Value Field (External Format)   IT_FPM_SEARCH_CRITERIA-LOW  (External Format)

DE DE DE

D DE DE

S ES ES

S TH TH

D* D* D*

  1.2.1.15.8 Converting FPM Attributes to ABAP Options (and Vice-


Versa)

Converting FPM Search Attributes to Web Dynpro ABAP Select Options


You can use the IF_FPM_GUIBB_SEARCH_CONVERSION  interface to transform FPM search statements into ABAP options.
This interface is included as a parameter in the search feeder class methods FLUSH  and PROCESS_EVENT .

Tip
The search feeder class CL_FPMGB_SEARCH_SFLIGHT  in the method PROCESS_EVENT  provides an example of how to use this interface.

To convert FPM search statements into ABAP Options, complete the following steps:
1. Call method IF_FPM_GUIBB_SEARCH_CONVERSION~CREATE_ABAP_RANGE_REF(…) .
This method creates data references for a range structure, and for a range table for a given search attribute.
2. With the data reference you have just created, call method IF_FPM_GUIBB_SEARCH_CONVERSION~FPM_ATTRIBUTE_INTO_ABAP_RANGE(…) .

PUBLIC Page 87 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

This method converts the search data for a given search attribute into ABAP range tables that can be used in ABAP select statements. If the option
USE_EXTERNAL_FORMAT = ABAP_TRUE , a range conversion is executed; otherwise a range conversion is not considered.
3. Use the range table that is returned in your ABAP selec t statement.
The following code example details the steps described above:
DATA: lr_range_tab_ref TYPE REF TO data.

FIELD-SYMBOLS: <fpmgb_s_search_criteria> TYPE fpmgb_s_search_criteria,


  <sel_opt_carrid > TYPE table.

LOOP AT it_fpm_search_criteria ASSIGNING <fpmgb_s_search_criteria>.


  AT NEW search_attribute.
* create data referene for a ABAP range table
  io_search_conversion->create_abap_range_ref(
EXPORTING
iv_search_attribute = <fpmgb_s_search_criteria>-search_attribute
  IMPORTING
er_range_tab_ref = lr_range_tab_ref ).

* convert search data into ABAP select statements, i.e. fill


* lr_range_tab_ref
  io_search_conversion->fpm_attribute_into_abap_range(
EXPORTING
iv_search_attribute = <fpmgb_s_search_criteria>-search_attribute
  IMPORTING
et_range_tab_ref = lr_range_tab_ref ).

  ENDAT.

* for each search attribute fill table with ABAP select options
  CASE <fpmgb_s_search_criteria>-search_attribute.
  WHEN 'CARRID'.
  ASSIGN lr_range_tab_ref->* TO <sel_opt_carrid>.
  ENDCASE.
ENDLOOP.

* Perform ABAP select statement


SELECT * FROM sflight INTO TABLE mt_sflight UP TO iv_max_num_results ROWS
  WHERE carrid IN <sel_opt_carrid>.

Converting ABAP Options to FPM Attributes


You can use method IF_FPM_GUIBB_SEARCH_CONVERSION~ABAP_RANGE_INTO_FPM_ATTRIBUTE(…)  to convert ABAP select options into FPM search
criteria.
For more information, s ee Defining Selection Criteria with Select Options  in the SAP Help Portal (sap.help.com).

  1.2.1.15.9 Simple Search


In addition to the advanced search (in which all search criteria are displayed), you can define a simple search for the Search UIBB - a search containing only one,
free-text input field.
Dependent on the definition of the search criteria in the search feeder class , FLUID display s the Allow Simple Search field in the General Settings panel . If the
simple search is activated, it becomes the default search option at runtime, and users can switch between the simple search and the advanced search.
Users can determine which search option should app ear as default in the Personalization dialog box.

Defining the Simple Search


The following rules apply when creating a simple search:
Only one free-text search attribute can be defined in your search feeder class
No mandatory search criteria may be defined
In the search feeder class method IF_FPM_GUIBB_SEARCH~GET_DEFINITION , in the field description of the search criteria, you can define properties of a
search attribute. For a free-text search attribute, set the attribute FPMGB_S_SEARCHFIELD_DESCR-FREE_TEXT_SEARCH = ABAP_TRUE. .
The free-text input field may contain multiple operators when it is displayed as part of the advanced search. When the same field is displayed in the simple
search, the default operator is used (although it is not displayed).
For details, see the example application configuration FPM_TEST_SEARCH_E_EASY_S_AC  in the system.

  1.2.1.15.10 Interface: IF_FPM_GUIBB_SEARCH


Description of methods in the interface implemented by the feeder classes of Search components.

Table 1: Methods of IF_FPM_GUIBB_SEARCH Interface

GET_DEFINITION:
Allows the feeder class to provide all necessary information for configuring a search: a list of available search attributes, and, optionally, a list of columns for the
results table.

Parameter Description

EO_FIELD_CATALOG_ATTR Is of type CL_ABAP_STRUCTDESCR  table. The components of the table are the available

PUBLIC Page 88 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

search attributes. The sim plest way to provide a field catalog is to create a flat DDIC
structure containing all the search attributes, and then get the field catalog using the
following construct:
EO_FIELD_CATALOG_ATTR ?= CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_NAME(
<NAME OF DDIC STRUCTURE>)
The Search GUIBB supports only flat structures. When using deep structures, only the
highest level fields are available.

ET_FIELD_DESCRIPTION_ATTR Optional. Here you can provide additional information for search attributes, for example
F4 hel ps, or i nput fiel d data format. You can also change the set of search operators that
are assigned to a search attribute. The followin g table describes the avail able attributes:

Attribute Description

NAME Name of th e search attribute.

IS_OF_TYPE Overwr ite the standard meta type.

TEXT Text for the search criteria that is displayed.

INCLUDE_OPERATORS  Add operators to the standard set of 


operators.

EXCLUDE_OPERATORS Exclude operators from the standard set of 


operators.

IGNORE_STANDARD_OPERATORS If this attribute is ABAP_TRUE  then the


table INCLUDE_OPERATORS defines the
operators that are displayed for the search
attribute (in both the Include S earch
Criteria and in the Exclude Search
Criteria areas). The table
EXCLUDE_OPERATORS is not used in this
case and the content is not considered.
 Additionally, the set of standard operators
is al so not considered.

ENUMERATION Value set for an enumeration search


criteria. The dropdown i s always rendered
as ‘null able’; this means an empty entry in
the value set is created in addition.
It is possible to use an initial value as key
but it is recommended not to do this. It is
not allowed to u se the operator 
IS_BETWEEN if the value set contains
the initial value as key. In this case, the
NULL and the initial value for the low and

high field cannot be handled properly.


DDIC_SHLP_NAME DDIC F4 help.

OVS_NAME OVS name.

NULL_AS_BLANK Displays zeros as blanks.

SIGN_POS Sign left or right.

CONDENSE Compress input.

DATE_FORMAT Date format.

SHORT_TIME Do not displ ay seconds.

MULTI_VALUE_STRUCT Structure of a multi-value field.

EXCLUDE_CRITERIA If the Exclude Criteria area is enabled,


this value is evaluated. If the value is
IF_FPM_GUIBB_CONSTANTS=>
GC_USE_AS_EXCL_SEARCH_CRIT-
USE_NOT_AS_EXCL_CRIT , then this
search criteria is n ot displayed as an
exclude search criteria ( see below for more
information).

FREE_TEXT_SEARCH This attribu te is a free text search.

WD_VALUE_HELP WD value help.

MAX_1_VALUE This criteria is a singleton, that is, it can be


used just once in the selection.

DEFAULT_OP Default operator for the search criteria. If 


there is one defined in the configuration,
the default operator from the configuration
is used.

DEACTIVATE_VALUE_HELP No value help is displayed.

VALUE_SUGGEST Value su ggest feature of Web Dynpro input


field.

MANDATORY This attribute is rendered without a minus


sign. Mandatory attributes are li sted before

PUBLIC Page 89 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

non-mandatory attributes in the Search


UIBB.

SUPPRESS_PATTERN_SEARCH Suppresses the pattern search (*) wi th


operator IS and IS NOT . If the user 
types in ‘*’ with these operators a warning
is displayed.

SP_GROUP If you define Special Groups in


ES_OPTIONS , you can enter here the
Special Group ID for a search attribute.

The FPM configuration editor, FLUID,


groups the fields together, providing you
with an easier method for finding fields.

INPUT_PROMPT This string is displayed as an input prompt


in a free-text Search Cri teria.

EO_FIELD_CATALOG_RESULT Optional. Contains the columns that are possible to choose from during configuration of 
the result table.

EO_FIELD_DESCRIPTION_RESULT Optional: Here you can provide additional information for the columns of the result table,
e. g. the colum n text.

EV_RESULT_TABLE_SELECTION_MODE This parameter determines the selection mode of the result table, such single line
selection, or multiple line selection. ( Constants CL_WD_TABLE =>
E_SELECTION_MODE ).

ES_MESSAGE Messages that wi ll be displayed on the error page.

EV_ADDITIONAL_ERROR_INFO  Additional information about error messages.

ES_OPTIONS Optional: Here you can adjust and overwrite the properties for the Search UIBB , for 
example, m odify standard texts. The followin g table describes some of the available
attributes:

Table 1:

Attribute Description

APP_KEY_FOR_SAVING_SEARCHES Configuration ID for saving a search.


If it i s a space, the search variants are saved
configuration-specific. Otherwise, this
Configuration ID is u sed to save a search
variant. This feature enables you to use the
same Search UIBB i n different Web dynpro
application configurations, and lets you see
the same search variants.

RAISE_EVENT_ON_ATTR_CHANGE Raise event FPM_SEARCH_ATTR_CHANGED

RAISE_EVENT_ON_RESULT_LEAD_S The FPM event FPM_RESULT_LEAD_SEL


EL (constant IF_FPM_GUIBB_SEARCH =>
FPM_RESULT_LEAD_SEL ) is only raised if 
there is a change of the lead selection in the
standard result list.

FIXED_WIDTH_FOR_USE_IN_DIALO If the search UIBB is used in a dialog box, it


G should have a fixed width.

ALLOW_EXCLUDE_CRITERIAS This flag is only evaluated if in the


configuration editor in the General Settings
panel, the attribute Exclude Criteria is set to
Defined by Feeder . In this case, if 
ALLOW_EXCLUDE_CRITERIAS = ABAP
TRUE , the link for Exclude Search Criteri a
is displayed (for more information, see
below).

SET_MULTI_ATTR_TO_READ_ONLY Only for multi-value fields: The search value


of a multi value field is set to read only.

MULTI_ATTR_SEPERATOR Only for multi-value fields: The separator 


between two entri es in th e formatted string of 
a multi-value field.

PASS_INITIAL_SEARCH_ROWS  All current search criteria on the screen will


be passed to the user in the feeder class, that
is search criteria with initial input. The feeder 
method GET_DATA  always gets all those
search criteria i n parameter 
CT_FPM_SEARCH_CRITERIA  passed to it.

USE_STD_DIALOG_MULTI_EDIT Only for multi-value fields: The standard


dialog box ID

FPM_SEARCH_STD_DIALOG (constant
IF_FPM_GUIBB_SEARCH=>
FPM_SEARCH_STD_DIALOG ) is used for a
multi-value field pop up.

USE_EXTERNAL_FORMAT If this parameter is ABAP_FALSE , any range

PUBLIC Page 90 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

conversion of search attributes is ignored. All


attributes are typed and transferred in in ternal
format.

ET_SPECIAL_GROUPS Special groups can be u sed for a grouping feature in FLUID. If th e feeder class provides a
special group table, i t shoul d assign each field in the field description table to a group in
field SP_GROUP . At design-time, the FPM configuration editor groups the fields. This is
an easier way to find fields in your field catalog

GET_PARAMETER_LIST:
This method is call ed at design time, a nd al lows you to define a l ist of the parameters that the feeder class su pports. Thi s li st is u sed by the FPM confi guration
editor to provide the input fields for these parameters.

Parameter Description

RT_PARAMETER_DESCR Is returned from this method. It describes which parameters are available. In field
TYPE , the DD IC type needs to be entered.

INITIALIZE:
Cal led at run time when the Search component is created.

Parameter Description

IT_PARAMETER Contains a l ist of the feeder class parameters, and the val ues for them specified in the
configuration.

FLUSH:

The first feeder class method which is called during an event loop. This method is called whenever an FPM event is triggered (this includes all round trips caused
by the Search component itself). Use it to forward changed Search data from the user to other components in the same application.

Parameter Description

IT_FPM_SEARCH_CRITERIA Contains th e actual search criteria.

IV_MAX_NUM_RESULTS Contains the value for the maximum number of result objects.

IT_SELECTED_LINES_OF_RESULT Contains those lines within the result table that are currently selected.

PROCESS_EVENT:
Cal led within the FPM event loop, thi s method forwards the FP M PROCESS_EVENT  event to the feeder class. This method should be u sed for actual ly conducting
the search. Before doin g so, you shoul d check for the ID IF_FPM_GUIBB_SEARCH=>FPM_EXECUTE_SEARCH  event. This FPM event is raised as soon as the user 
presses the SEARCH button.

Parameter Description

IO_EVENT The FPM event w hich i s to be processed.

IT_FPM_SEARCH_CRITERIA The current search criteria. If the parameter 


ES_OPTIONS=>PASS_INITIAL_SEARCH_ROWS  in method GET_DEFINITION  is
TRUE, then all search rows will be in this table. Otherwise, only the search rows where
there is an input in the search value field will be included. For each search row, the
attributes described in the followi ng table are passed.

Table 3: Details for I T_FPM_SEARCH_C RITERIA ( structure


FPMGB_S_SEARCH_CRITERIA)

Attribute Description

SEARCH_ATTRIBUTE Name of search attribute.

OPERATOR Curr ent search operator.

LOW Search value in LOW field.

HIGH Search value in HIGH field; used with


operator IS BETWEEN .

MULTI_VALUE_ATTR Multi values.

SIGN Include (I) or exclude (E) search criteria.

FREE_TEXT_SEARCH This attribu te is a free text search.

IS_INITIAL_VALUE_EVALUATED This value is ABAP_TRUE  if something


was entered in the LOW field. If the
search criteria is a dropdown l ist box, and a
value with an initial key was selected, then
IS_INITIAL_VALUE_EVALUATED =
ABAP_TRUE AND LOW IS INITIAL .

APPL_FORMATTED_MV_STRING_TABLE Only for Multi-value fields: This parameter 


is used when the user formats the multi-
value data. The passed string table is
displayed in the search row.

EXT_PRESENTATION This parameter can onl y be set for search


attributes with a range conversion. For all
other attributes, the parameter is i gnored.
For more details, see the section Search
Attribu tes with Conversion Exi ts or 
Range Conversion.

PUBLIC Page 91 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

IV_RAISED_BY_OWN_UI Indicates whether th e event was raised by the actual search UIBB , or by som e other 
UIBB.

IV_MAX_NUM_RESULTS Indicates the maximum number of found objects to be displayed in the result table. Zero
is allowed, and should display all search results.

IO_SEARCH_CONVERSION This interface should be used to transform FPM search statements into ABAP options.
For details see the topic Conversion fr om FPM operators in to ABAP options:
Interface IF_FPM_GUIBB_SEARCH.

ET_MESSAGES The feeder class may return messages via this parameter. As usual, the messages are
displayed within the FPM message area.

EV_RESULT The result of the event processing. There are 3 possible values:
ev_result = if_fpm_constants=>gc_event_result-OK
ev_result = if_fpm_constants=>gc_event_result-FAILED
ev_result = if_fpm_constants=>gc_event_result-DEFER

GET_DATA:
Cal led within the FPM event loop, thi s method forwards the FPM PROCESS_BEFORE_OUTPUT  event to the feeder class. The main purpose of this method is to
transport data from the feeder class to the search UIB B. With this method, the user can a lso set initial data in the search U IBB . You must check the Event IDs
CL_FPM_EVENT=>GC_EVENT_START , IF_FPM_GUIBB_SEARCH=>FPM_RESET_SEARCH , if_fpm_guibb_search=>fpm_execute_search , and pass the search
resul ts from the application to the search UIB B.

Parameter Description

IO_EVENT The FPM event w hich i s to be processed.

IV_RAISED_BY_OWN_UI Indicates whether the event originates from this UIBB.


IT_VISIBLE_ATTRIBUTES Indicates which search attributes are currently visible on the UI.

IT_SELECTED_COLUMNS_OF_RESULT Indicates whi ch column s have been configured for the result table.

IT_SELECTED_SEARCH_ATTRIBUTES Indicates wh ich search attributes have been configured.

IO_SEARCH_CONVERSION This interface should be used to transform FPM search statements into ABAP options.
For details see the chapter Conversion fr om FPM operators in to ABAP options:
Interface IF_FPM_GUIBB_SEARCH.

ET_MESSAGES The feeder class may return messages through this parameter, to be displayed in the
Message Area .

EV_SEARCH_CRITERIA_CHANGED Informs th e search UIBB whether the search criteria have been changed. If so then the
search criteria on the screen wil l be updated accordingly.

ET_RESULT_LIST If the application chooses to let the search UIBB render th e result table, the application
must inform the search UIBB about the content of the result using this parameter (but

only if the event ID is IF_FPM_GUIBB_SEARCH=>FPM_EXECUTE_SEARCH ).


CT_FPM_SEARCH_CRITERIA Contains the current search criteria. All search criteria will be passed from FPM to the
user, that includes search criteria with initial search values.

EV_RESULT_LIST_TITLE Sets a title for the standard result list.

EV_FIELD_USAGE_CHANGED Indicates whether th e field usage has been changed by this method.

CT_FIELD_USAGE Field usage to change. The field usage consists of the field attributes wh ich m ight change
at runtime (for example, enabled, and visible).

GET_DEFAULT_CONFIG:
Call this if you want to have a default configuration. Use it to call pre-configured form configurations when a user starts the FPM configuration editor. This avoids
the user, who uses a feeder class to create a search, havi ng to create it from the begin ni ng.

Parameter Description

IO_LAYOUT_CONFIG Of type IF_FPM_GUIBB_SEARCH_CONFIG : This object provides the API to create a


default configuration.

CHECK_CONFIG:
Cal l thi s if you want to make your own appl ication-specific checks on the configu ration in the FPM confi guration editor i mmediately before savin g.

Parameter Description

IO_LAYOUT_CONFIG Of type IF_FPM_GUIBB_SEARCH_CONFIG : This object provides the API to r ead the
configuration to be saved.

Related Information
Search Attributes with Conversion Exits or Range Conversion
Using Multi-Value Fields

  1.2.1.16 Tabbed Component

Definition
 A generic design template used specifically for displaying data in a master/detail format.

PUBLIC Page 92 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

It is implemented using the Web Dynpro component FPM_TABBED_UIBB.


Unlike most of the generic UIBBs (GUIBBs), the Tabbed component has no feeder class.

Use
You use this design template to display data in a master/detail format. You could use the Tabbed component to simultaneously display a selection list of business
objects, and the additional details of those business objects in tabs without changing the view. You determine the concrete arrangement of the selection list, detail
views, and data when configuring the Web Dynpro component FPM_TABBED_UIBB.

Structure at Runtime
 A Tabbed component consists of the following areas:
The Master area
This is usually (but does not have to be) one of the List components, allowing the end-user to select a row item whose details are then shown on individual
tabs in the Details area
The Details area (also known as the TAB area)
This area consists of a number of tabs, each one showing speci fic details relating to the row item selected by the end-user in the Master area
The D etails Title area
 An area providing a title for the Details area.
The content of the Master area and the content of the tabs in the Details area are determined by s eparate Web Dynp ro components, which you set when
configuring the Web Dynpro component FPM_TABBED_UIBB.

Note
If you do not set the Web Dy npro component for the Master area, only the tabs app ear with their UIBBs.

Editing the Structure at Design Time (FLUID)


You configure this component using the FPM configuration editor, FLUID.
 Although the Tabbed component is technically a UIBB, you use it for layout purposes. As such, when you edit this component using FLUID, you see settings that
are usually available only for the floorplan components.
 At design time, the Preview panel in FLUID disp lays the Tabbed component as two separate boxes; one box displays the configuration details of the UIBB
selected for the Master area, and one box display s the tabs in the Details area. Each tab displ ays the configuration details of the UIBB it contains.
In the General Settings panel, you can speci fy settings app licable to the Tabbed component as a whole.
In the Tabbed UIBB Schema panel , you can add the Master area, and spec ify the type of UIBB to use there (usually a List UIBB). You can construct the
Details area by adding tabs to which you add the UIBBs. Additionally, y ou can speci fy attributes for the individual elements of the Tabb ed component.
For more information on the attributes of this c omponent in FLUID, c hoose Field Help from the context menus in the sys tem.

Related Information
Changing the Tabbed Component Dynamically at Runtime

  1.2.1.16.1 Changing the Tabbed Component Dynamically at


Runtime
You may rename, add and remove tabs or child-UIBBs (or embedded UIBBs) from your Tabbed component during runtime.

Context
To do so, p roceed as follows:

Procedure
1. Choose an appli cation-spec ific Web Dynp ro component and add the Web Dynp ro interface IF_FPM_TABBED_CONF_EXIT  to the Implemented
Interfaces tab of your Web D ynpro component. This is one of the Web Dynp ro components that provide you with a child UIBB.
2. Save and activate the newly added interface.
You want to rename a tab in your code at runtime. To do this, you must raise your own FPM event (for example, CHANGE_TAB_NAME ) as the sample code
below shows:
DATA: lo_fpm TYPE REF TO if_fpm,
  lo_event TYPE REF TO cl_fpm_event.
  lo_fpm = cl_fpm=>get_instance( ).
  lo_event = cl_fpm_event=>create_by_id( 'CHANGE_TAB_NAME' ).
  lo_event->MO_EVENT_DATA->set_value( iv_key = 'ID'
  lo_event->MO_EVENT_DATA->set_value( iv_key = 'NAME' iv_value = lv_tab_name ).
  lo_fpm->raise_event( io_event = lo_event ).
3. In the component controller, imp lement the method OVERRIDE_CONFIG_TABBED .
To continue with the above example of renaming a tab, implement the following sample code:
CASE io_tabbed->mo_event>mv_event_id.
WHEN 'CHANGE_TAB_NAME'.

PUBLIC Page 93 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

DATA lv_name TYPE string.


DATA lv_id TYPE string.
io_tabbed->mo_event>MO_EVENT_DATA->get_value( EXPORTING iv_key = 'ID'
IMPORTING ev_value = lv_id ).
io_tabbed->mo_event->MO_EVENT_DATA->get_value( EXPORTING iv_key = 'NAME'
IMPORTING ev_value = lv_name ).
io_tabbed->rename_tab( iv_tab_id = lv_id iv_new_name = lv_name ).

  1.2.1.16.1.1 Hiding Master or Detail UIBBs at Runtime


It is possible to hide the UIBBs in the Master or Details areas in a Tabbed component at runtime.
You can use the following methods in the IF_FPM_TABBED  interface to hide UIBBs contained in the Master or Detail areas of a Tabbed Component at runtime:
SET_MASTER_UIBB_HIDDEN
Use this to hide or unhide the UIBB in the Master area in a Tabb ed component. The appli cation must pass the UIBB information ( Component , Interface
View , Configuration Name ) to FPM, along with information about whether the UIBB should be set to visi ble or invisib le.
SET_TAB_UIBB_HIDDEN
Use this to hide a UIBB in the Details area in a Tabbed component. Along with the UIBB details. The flag to set it as visib le or invisib le should be sent to
FPM.

Note
Even though all Master UIBBs can be hidden or removed, the last Details UIBB on a tab cannot be hidden or removed.

 The1.2.1.16.1.2 Changing the Details Title Area at Runtime


Details Title area of a Tabbed component can be changed at runtime using an extended application configuration controller (AppCC).
You can implement an extended AppCC by implementing IF_FPM_TABBED_CONF_EXIT_E  either for a Web Dynpro component or for an ABAP class.
The extended App CC provides a feature to check the name of the Master Detail column in the List component acting as the Master UIBB, and change the
content of the Details Title area with the method CHANGE_DETAIL_AREA_TITLE .

  1.2.1.17 Visual Business Component


 A generic design template for displaying data in an interactive graphic format.
The Visual Business ("VisBiz") component allows you to embed SAP Visual Business applic ations into your FPM app lications.

Note
SAP Visual Business is an existing user interface technology that visualizes data from SAP and external data sources on a single screen. Visual Business
applications not only combine different types of content, but also include interactive graphics that visualize and combine enterprise data with geographical or 
three-dimensional real-world scenes.
For more information on SAP Visual Business, search for Visual Business  in the SAP Help Portal (help.sap.com).

The VisBiz component is implemented using the Web Dynpro component FPM_VISBIZ_UIBB . The information displayed in this component at runtime is
determined by the feeder class assigned to the configuration of the Web Dynpro component FPM_VISBIZ_UIBB . However, you can determine the concrete
display of the data in this component when you configure this component in the FPM configuration editor, FLUID.

Implementation Considerations
If you use SAP solutions or applications that integrate Visual Business applications, you must install SAP Visual Business. For use in FPM applications, you
must install at least SAP Visual Business version 2.1.
This component uses the Web Dynp ro ABAP HTML Island element. Therefore, applic ations containing the Visual Busines s Component must be run in a
browser supporting HTML5. For more information, see the SAP Help Portal (help.sap.com).
 Always run these appli cations in the Standards mode of the browser. For more information, see UI Control Rendering in Standard s Mode  in the SAP Help
Portal under Developing Web Dynpro ABAP App lications Reference .

VisBiz Component at Runtime


The screenshot below shows an FPM application at runtime, incorporating a VisBiz component (in this example a geomap) and a List component. When the
application is first opened, the VisBiz component is configured to show a default map type and location. When the user chooses a destination city in the List
component, the application zooms into that city at a predefined zoom level. Visbiz applications are divided into geomap applications and 3D scenarios.

PUBLIC Page 94 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Figure 1: Visual Business Component at Runtime (showing a Geomap Application)

Depending on how the application is configured, the following objects might be displayed:
Navigation Control
 Allows you to zoom in on the graphic for greater detail, to move around, and to rotate and tilt the graphic.
Toolbar 
 Allows you to navigate backwards and forwards, to select objects on the graphic, and to zoom in on an area for greater detail.
Visualization O bjects
These represent objects from business scenarios, for example warehouses, factories, revenues, spending power. The actual data behind these objects is
provided by the backend systems.
Quick Info
 App earing when you select a specific visualization object, quick info provides you with additional information about the selected object.
If personalization is enabled, you can personalize the map at runtime using the context menus.

Editing the Component in Design Time


In transaction SM34  (View Cluster Maintenance), you can find all the SAP Visual Business applic ation data in view cluster VBIVC_APPDEF . The SAP
Visual Business application is a collection of map stacks; layers of maps are grouped together to form a map stack.
You configure this component using the FPM configuration editor, FLUID.
For this component, FLUID disp lays only the General S ettings panel. Here you can configure the starting position of the map that is disp layed when the
application is first opened; you can enter latitude and longitude values, as well as the angle at which the map is tilted and rotated.
 As a minimum, the name of the feeder class and the VisBiz appl ication must be entered in FLUID. The following optional fields can remain empty (FPM fills them
with default values):
Service P rovider Class
UI Adapter Class
 App lication Class
You can also create your own class (inheriting from the VisBiz classes) if the standard behavior does not fit your needs. The standard classes are:
 App lication Class: CL_FPM_VBI_GEOMAP_APPLICATION  for a geomap application, CL_FPM_VBI_APPLICATION  for 3D scenario
 Adapter Class: CL_VBI_CONTROL_ADAPTER_GEO  for a geomap application, CL_VBI_CONTROL_ADAPTER  for 3D scenario
Service Provider Class: CL_VBI_SERVICE_PROVIDER
 Additionally, you can define which location should be displayed when the map is opened at runtime (start position); no start position is the default setting. If field

values are not defined by application development, default values from SAP Visual Business are used.
For more information about the individual fields in the General Settings panel, c hoose Field Help from the field context menus in the system.

Related Information
Creating a VisBiz Configuration Dynamically
Interface: IF_FPM_GUIBB_VISBIZ

  1.2.1.17.1 Creating a VisBiz Configuration Dynamically


 A summary of the methods of interface IF_FPM_GUIBB_VISBIZ_CONFIG  which you can use to create a Visual Business(VisBiz) configuration at runtime.
This interface is used in feeder class methods GET_DEFAULT_CONFIG  and CHECK_CONFIG . It contains the following methods that allow you to set, and
validate, the configuration data of a VisBiz component:

Table 1: Methods of IF_FPM_GUIBB_VISBIZ_CONFIG Interface

Method Description

ADD_PARAMETER If the feeder class h as parameters, add the values here.

ADD_START_POSITION If a special start position is requir ed, enter it h ere.

PUBLIC Page 95 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

ADD_VISBIZ_CLASSES You can enter all relevant VisBi z classes here, i f necessary. If you leave it empty, the
VisBiz default classes will be used.

ADD_APPLICATION The VisBiz application is the most important entity; without this, the GUIBB will not
work.

ADD_MIME_REP_PATH  A mime repository path can be set to change the icons, if you want to use your own
icons and not those of VisBi z.

ADD_DEFAULT_MAP_STACK If another default map stack than the one which is defined in customizing should be used
at start of the application it has to be added here.

ADD_PERSONALIZATION_ENABLED  Allow the user to personalize the start position and default map stack.
GET_PARAMETERS Before saving the configuration with in FL UID, the parameter values can be checked by
the application.

GET_START_POSITION Before saving the configuration with in FL UID, the start position can be checked by the
application.

GET_VISBIZ_CLASSES Before saving the configuration with in FL UID, the classes can be checked by the
application. Normally, the classes should be empty but if a special inherited class is
required for the GUIBB, it must be checked here.

GET_APPLICATION Before saving the configuration with in FL UID, the application can be checked by the
application.

GET_MIME_REP_PATH Before saving the configuration within FLUID, the mime repository path can be checked
by the application.

GET_DEFAULT_MAP_STACK Before saving the configuration with in FL UID, the default map stack can be checked by
the application.

GET_PERSONALIZATION_ENABLED Before saving the configuration with in FL UID, the personalization flag can be checked by
the application.

  1.2.1.17.2 Interface: IF_FPM_GUIBB_VISBIZ


Description of methods in the interface implemented by the feeder classes of Visual Business (VisBiz) components.
The following table provides details only for those methods in this interface which must be implemented as a minimum. For details on other methods, see the
interface documentation for other GUIBBs .

Table 1: Methods of IF_FPM_GUIBB_VISBIZ Interface

GET_DATA 
All ows the feeder clas s to provide al l necessary information for configu rin g a Vi sBiz component.
This method contain s the following tables, representing objects that you can show on the map at ru ntime:
CT_SPOTS
CT_LINKS
CT_AREAS
If the data i s chan ged, set the exportin g parameter EV_DATA_CHANGED  to X, so that the data is updated and shown on the map.
Each of the above entities contain the following attributes:

Attribute Description

DESCRIPTION You can add a description in the tables for the tooltip and/or the Qu ick Info that appears
when, for example, you click on a spot on the map.

Note
Category
Can be a tooltip, description (Quick Info), or both. Use the constants, foun d in
IF_VBI_CONST=> GC_DESCR_CATEGORY .
.
Part
Enter values for Category  (both and description onl y) so that the Quick Info

is displayed in the right form at (as a caption, su b-caption, or valu e). Use the
constants, found in IF_VBI_CONST=>GC_DESCR_PART .
Field_Name
Enter valu es for each case; these will be shown as labels for the valu es.
Value
Value to be displayed.

GUID  A unique identifier for a spot, link, or area on the map. If you update any data on the
screen, or create a Quick Info, thi s GU ID is used to locate the corresponding spot, li nk, or 
area on the map.

FLY_TO  A flag that determines whether a spot, link, or area on the map should have a fly-to effect
when it is displayed.

ROLE Determines which icon is to be shown on the map for a spot.

POSITION  Add the xpos , ypos , and zpos  here according to the s cenario type (maps or 3D
visuals).

BORDER_COLOR These are used for links and areas only.

FILL_COLOR These are used for links and areas only.

TYPE The type is used, for example, for the 3D Scenario, and should, in this case, be of type
BOX ; see constant IF_VBI_CONST=> GC_SCENE_OBJECT_TYPE- BOX .

PUBLIC Page 96 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

SPECIAL_PROPERTIES This attribute is used within the 3D Scenario. It should be of type


IF_VBI_CONST=>GTYPE_BOX_EXTENSION . Here, you can enter values for the scales
for the x, z, an d z axes.

PROCESS_EVENT
Cal led within the FPM event loop. Here the event processing can take place, a nd thi s i s where the event can be canceled or deferred.
The following events can be processed in this method:

CONTEXT MENU REQUEST Is triggered when the user right-clicks on the map at run time. You can add your own
context menu with your own events by entering values in parameter CT_MENU
(constant IF_FPM_GUIBB_CONSTANTS=>GC_GUIBB_VISBIZ-CONTEXT_MENU ). A
reference to CL_CTMENU  must be used.

DETAIL REQUEST Is triggered when the user clicks, for example, a spot on the map. If you have not
defined the details in the method GET_DATA , you can enter the details h ere. You get
the parameter DETAILS
(constant IF_FPM_GUIBB_CONSTANTS=>GC_GUIBB_VISBIZ-DETAILS ) with
reference to CL_VBI_OBJECT_DETAILS_DESCR  wh ere you can set a caption, add a
toolbar element or links, for example.

DROP EVENT Is triggered when the user drags, for example, a spot onto another spot on the map.
The drop event FPM_VBI_DROP  (constant
CL_FPM_EVENT=>GC_EVENT_VBI_DROP ) contains as a parameter the source
GUID of the spot which was dragged. (constant
IF_FPM_GUIBB_CONSTANTS=>GC_GUIBB_VISBIZ-SOURCE_GUID ).

Self-Defined Events These events are triggered as soon as the user selects them in the context menu at
runti me. You can create your own FPM event in th e context menu that you created (as
described above).

  1.2.2 Value/Input Helps for Generic UIBBs (GUIBBs)


It is possible to assign Value Helps to fields belonging to GUIBB components.
You can use the following options to assign value helps (arranged in order of precedence):
1. DDIC value helps assigned in the field description
2. OVS (Object Value Selector) assigned in the field description
3. Freestyle value helps ass igned in the field description
4. Fixed values ass igned in the field descrip tion
5. DDIC value helps assigned to a DDIC structure used as includes in the field catalog (nesting is possib le).
6. DDIC value help s assi gned to the data element used in the field catalog
7. Fixed values from the domain assigned in the data element used in the field catalog
8. Input help for data types DATS and TIMS.

Note
If more than one of these options is assigned to a field, the one highest in the above list has priority.

  1.2.2.1 Assignments in the Field Description


 A summary of the Value Help assignments in the field description.

DDIC Value Help


 A DDIC value help can be assigned by the feeder class in the field description in field DDIC_SHLP_NAME .

OVS
Whenever a DDIC search help is not applicable, you should consider the OVS mechanism. OVS offers a generic UI like the DDIC value help. However, you
must offer the selection logic. To do this, you must provide the name of a class implementing IF_FPM_GUIBB_OVS  in the field description in field OVS_NAME .
If the specified name is the same as the feeder class name, then the feeder class instance will be used, otherwise this class will be instantiated whenever it is
needed.
This interface offers 4 methods:
HANDLE_PHASE_0  where the OVS p opup can b e “configured”
HANDLE_PHASE_1  to define the selection fields
HANDLE_PHASE_2  where the result list must be determined
HANDLE_PHASE_3  where the selected result list entry is passed back to the input field

In order to fulfill these tasks, an instance of IF_WD_OVS  is passed as an importing parameter to these methods.

Freestyle Value Help


 A freestyle value help is a WD AB AP component implementing the WD interface IWD_VALUE_HELP . The name of a freestyle value help component can be
assigned by the feeder class in the field description in field WD_VALUE_HELP . The attribute values can be accessed via the context element attached to the
value help listener. The context attribute names are the same as the field names of the field catalog except for the search attributes of the Search UIBB. Additional
information can be provided if the freestyle component also implements the WD interface IF_FPM_GUIBB_VH . In method INITIALIZE_GUIBB_VH , the

PUBLIC Page 97 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

following parameters are passed:


IS_INSTANCE_KEY : The instance key of the GUIBB
IV_FIELDNAME : The field name from the field catalog of the value help field
IO_SEARCH_ATTR_READ : An access interface providing the current search criteria

Fixed Values
 A set of fixed values can be assigned by the feeder class in the field description in field FIXED_VALUES .

  1.2.3 Dynamic GUIBB Configurations at Runtime


This section describes how an application can trigger the invalidation, and re-instantiation of FPM GUIBBs at runtime, and how it can replace the current GUIBB
configuration with a dynamic one during re-instantiation.
Dynamic GUIBB configurations in this context are default configurations that are provided by the GUIBB feeder class through the feeder class method
GET_DEFAULT_CONFIG .
Such a method exists in the feeder class interfaces of the following GUIBBs:
Form and Form GL2
Form Repeater 
List and List ATS
Tree
Search
 Additionally, a feeder class method GET_DEFAULT_CONFIG  also exists in the feeder class interfaces of the FPM Thing and Dataset quickviews. However,
quickviews are handled slightly differently compared to GUIBBs with respect to invalidation and re-instantiation. The approach involves two mechanisms:
Invalidation and re-instantiation
This mechanism not only applies to GUIBBs and quickviews, but to freestyle UIBBs too.
Dynamic configuration exchange
This takes place after invalidation and re-instantiation, and is specific to GUIBBs and quickviews.

Related Information
UIBB Invalidation and Re-instantiation
Dynamic GUIBB/Quickview Configuration Exchange

  1.2.3.1 UIBB Invalidation and Re-instantiation


Mechanism app lying to GUIBBs, freestyle UIBBs, and quickv iews.
The FPM event FPM_INVALIDATE_UIBB  can be raised in order to initiate the UIBB invalidation and re-instantiation, and is represented by the FPM constant
IF_FPM_CONSTANTS=>GC_EVENT-INVALIDATE_UIBB .
 Additionally, the FPM event parameter FPM_LIST_OF_UIBB_INSTANCES , represented by the FPM constant IF_FPM_CONSTANTS=>
GC_EVENT_PARAM_LIST_OF_INST , is evaluated by the FPM runtime when processing the invalidation event FPM_INVALIDATE_UIBB .

The event parameter can be used to specify the list of UIBB instances that are going to be invalidated and re-instantiated. Each UIBB can register itself or other 
UIBBs by adding the corresponding UIBB Instance Key to that list. The relevant DDIC table type for this list of UIBB instances is
FPM_T_COMPONENT_INSTANCE_KEY .

If the invalidation event has been raised, and not been cancelled, the central FPM runtime releases the UIBBs that have been registered on the invalidation event.
The release happens in the FPM event loop after the last point in time at which the event can be cancelled, that is, after calling PROCESS_EVENT  on the current
UIBBs (respectively after calling AFTER_PROCESS_EVENT  if an application controller exists), and before the instantiation of any new components of the next
UIBBs and quickviews takes place, that is, before confirmation requests are processed, or PROCESS_BEFORE_OUTPUT  is called on the next UIBBs. The
conditions for the release of the UIBBs are the same as if they were defined as transient. If at least one UIBB cannot be released because of these conditions, the
invalidation event is cancelled by the central FPM runtime according to an ‘all or nothing’ principle.
With respect to invalidation, quickviews are handled slightly differently to GUIBBs or UIBBs. This is because quickviews are always tightly coupled to their 
quickview source GUIBBs, and cannot exist without their source. Quickviews will always be invalidated together with their quickview source GUIBB; it is sufficient

to register only a quickview source GUIBB for invalidation in order for all its quickviews to be invalidated too. On the other hand, invalidation of quickviews without
invalidation of their quickview source GUIBB is not supported by the FPM; a quickview alone must never be registered for invalidation.

Restriction
The mechanism for invalidation and re-instantiation of GUIBBs could theoretically also be applied to the Tabbed UIBB and Composite UIBB. However, the
invalidation and re-instantiation will only take place if all the GUIBBs/ UIBBs contained in the composite UIBB have been registered explicitly on the FPM
invalidation event too. Additionally, since the Tabbed and Composite UIBBs have no feeder class, but a runtime API that enables dynamic changes at
runtime, it does not make sense to invalidate and re-instantiate these UIBBs.
Since there is no feeder class for free-style UIBBs, there is of course no call to a feeder class method GET_DEFAULT_CONFIG . This means the free-style
UIBB itself should determine what happens at re-instantiation.

  1.2.3.2 Dynamic GUIBB/Quickview Configuration Exchange


Mechanism specific to GUIBBs and quickviews.
To exchange the configuration of an instantiated GUIBB with a dynamic configuration, you use the interface IF_FPM_GUIBB_DYNAMIC_CONFIG .
This interface has one method HAS_DYNAMIC_CONFIGURATION , returning a Boolean value. The interface is added to a GUIBB feeder class, and the method
must be implemented. If the feeder class returns the value ABAP_TRUE  in this method, this serves as an indicator for the GUIBB runtime to explicitly call
method GET_DEFAULT_CONFIG  of the feeder class during instantiation (and, as an exception, during processing of the special event

PUBLIC Page 98 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

FPM_SEARCH_NEW_FIELDCAT  in the GUIBB Search too).


The feeder class method GET_DEFAULT_CONFIG  is called by the GUIBB runtime in the following situations:
During initialization of the GUIBB, if the static GUIBB configuration is ‘empty’ according to specific GUIBB/quickview criteria.
During initialization of the GUIBB, if the GUIBB feeder class implements the interface IF_FPM_GUIBB_DYNAMIC_CONFIG  and returns the value
ABAP_TRUE  in the interface method HAS_DYNAMIC_CONFIGURATION .
Immediately before calling feeder class method GET_DATA  in the GUIBB Search, if the special FPM event FPM_SEARCH_NEW_FIELDCAT  has been
raised.

Restriction
 At design time, the value ABAP_TRUE  in method HAS_DYNAMIC_CONFIGURATION  of the interface IF_FPM_GUIBB_DYNAMIC_CONFIG  means the
configuration cannot be maintained anymore in the configuration editor (with the exception of the feeder class and the feeder parameters). If the configuration is
already non-empty (because it was created at an earlier point in time when the feeder class had not yet returned the value ABAP_TRUE  in method
IF_FPM_GUIBB_DYNAMIC_CONFIG-> HAS_DYNAMIC_CONFIGURATION ), an appropriate message is displayed to the administrator.

  1.2.4 Context Menus and Action Menus in GUIBBs

Use
 A context menu is a list of menu options that appears at runtime when the user chooses the secondary mouse button. The list of menu options displayed generally
relates to the object currently selected on the screen and varies according to the current state, or context, of the application.
 An action menu is a specific icon which displays a lis t of menu options or activities when the user chooses this icon at runtime.

Both context and action menus can be assigned to the individual elements of the GUIBB component. Additionally, context menus can also be added to the GUIBB
component as a whole, that is, a context menu could be assigned to an individual column in a list or to the overall list itself.
The application's feeder class is responsible for defining both context and action menus. However, both menu types can be configured in the Floorplan Manager 
(FPM) configuration editor, FLUID.

Structure
Context menus are configured in the Menu Schema panel ins ide the FPM configuration editor, FLUID, of the GUIBB component of your appl ication.
Each context menu has a unique Context Menu ID and contains one or more Menu Items (actions).
The following attributes exis t for Menu Items :
Item Type
Determines how the text detailing the menu item is pres ented at runtime. The following Item Types exis t:
Single Action Item
Menu Checkbox
Submenu
FPM Event ID
The FPM event that is raised by this menu item.
Needs More Information
This option is selected if another dialog box appears after the menu item; an ellipsis appears after the name of the menu item to indicate to the user that
more information will follow.
Image
The name of the icon that appears alongside the text of the menu item.
Separator Bar 
 As an alternative to displaying an uninterrupted list of menu items, separator bars can be used to organize menu items into meaningful groups.

Note
Not all attributes exist for all Item Types .
 A context menu can be displayed as an Action Menu at runtime by ass igning the context menu to the Action Menu ID field of an element on the <GUIBB>
Schema p anel.

Once you have configured a context menu, you can assign it to an individual element in the GUIBB or to the GUIBB component itself. You can also decide to
display the context menu not as a context menu but as an action menu instead.

Creating Context Menus and Action Menus


You can create context menus in the following ways:
Statically, using the FPM configuration editor, FLUID
Dynamically, by implementing the IF_FPM_GUIBB_CTXT_MENU  interface

Related Information
Creating a Context Menu Dynamically
Creating a Context Menu in FLUID

 Action Menus in GUIBBs


Displaying a Context Menu as an Action Menu

  1.2.4.1 Creating a Context Menu Dynamically

PUBLIC Page 99 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

There is the option to create or change context menus dynamically at runtime by implementing the interface IF_FPM_GUIBB_CTXT_MENU .
Form, List and Tree feeder classes can provide context menus.
The interface IF_FPM_GUIBB_CTXT_MENU  offers an additional event (  PROCESS_CTXT_MENU ) which is called after the user launches the context menu, and
before the context menu is displayed. This event corresponds to the Web Dynpro event WDDOONCONTEXTMENU . Due to the pure dynamic nature of these
context menus, the GUIBB context menu features are restricted compared to what Web Dynpro itself offers: menu checkboxes and radio buttons cannot be
provided in this way.
IF_FPM_GUIBB_CTXT_MENU  Interface

Table 1: Methods of IF_FPM_GUIBB_CTXT_MENU

PROCESS_CTXT_MENU  
Allows the feeder class to provide a context menu

Parameter Description

IV_NAME Type NAME_KOMP . Contains the field name if the context


menu is l aunched from a place which can be related to a
field from th e field catalog. If this is not possible (for 
example, when the context menu is launched from the list
title or from a form’s group title) then IV_NAME  is initial.

I_VALUE Type DATA . In form UIBBs it contains the field’s value, in


list UIBBs the complete row. This parameter is initial
when the context menu is launched from a place which is
not related to this data (for example, when launching the
context menu in a list from a column header IV_NAME
will be filled, but I_VALUE  will be empty).

IO_CTXT_MENU Type IF_FPM_CTXT_MENU . This interface is explained


in detail below.

Table 2: Methods of IF_FPM_CTXT_MENU

GET DETAIL
Gets the detail information for this context menu

Parameter Description

EV_ID Type FPM_CTXT_MENU_ID . Contains the unique ID of the context menu.

EV_TITLE Type FPM_CTXT_MENU_TITLE . Contains the title of the context menu. This title is only
visible when the context menu is used as submenu.

EV_IMAGE_SOURCE Type FPMGB_IMAGE_SRC . Provides the source of the image of the menu. This image
is only displayed when the context menu is used as a submenu.

ET_ITEM Type IF_FPM_CTXT_MENU=> TY_T_CTXT_MENU_ITEM . Provides alist of all menu


items.

Table 3:

GET_SUBMENU
Returns a submenu

Parameter Description

IV_ID Type FPM_CTXT_MENU_ID . Specifies the ID of the context sub menu.

RO_SUBMENU Type IF_FPM_CTXT_MENU . Represents the submenu.

Table 4:

REMOVE_ITEM
Removes the specified item from a context menu

Parameter Description

IV_ID Type FPM_CTXT_MENU_ID . Specifies the ID of the item to be removed.

Table 5:

ADD_ACTIONITEM:
Adds a new Action Item to the menu

Parameter Description

IV_TEXT The text of the new menu entry.

IV_FPM_EVENT_ID The FPM Event ID  which will be raised when the user selects this action item.

IO_FPM_EVENT The FPM Event to be raised when the user selects this action item. Either 
IV_FPM_EVENT_ID or IO_FPM_EVENT  have to be provided. If both are provided
IV_FPM_EVENT_ID  is ignored.

IV_IMAGE_SOURCE Provides the image source for the menu entry (optional).

IV_NEEDS_MORE_INFO Should be set when executing the action additional information is required. Another three
points are listed after the text to display this information.

IV_INDEX  Allows specification of the position of the new entry (optional: if left initial, entry is
appended to the end).

Table 6:

PUBLIC Page 100 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

ADD_SUBMENU:
Creates and adds a n ew submenu to the Context Menu

Parameter Description

IV_TITLE The title of the new menu entry.

IV_IMAGE_SOURCE Provides the image source for the new submenu (optional).

IV_INDEX  Allows specification of the position of the new entry (optional: if left initial, entry is
appended to the end).

RO_SUBMENU The new submenu.

Table 7:

ADD_SEPARATOR:
Adds a new separator to the Context Menu

Parameter Description

IV_INDEX  Allows specification of the position of the separator (optional: if left initial, entry is
appended to the end).

  1.2.4.2 Creating a Context Menu in FLUID

Use
You can use context menus to provide the user with shortcuts to actions or activities that are relevant to the object the user has selected at runtime.

Procedure
Context menus can be created and configured in the FPM configuration editor, FLUID, as well as by API.
There are three steps to creating such a menu type in an application using FLUID:
1. Create a context menu, and add and c onfigure menu items to it.
2. Ass ign the context menu to an element in the GUIBB, or to the GUIBB as a whole.
3. Dis play the menu as a context menu or, alternatively , as an action menu.
Creating a Context Menu and Add ing and Configuring Menu Items to It

1. Op en FLUID, and choose the GUIBB (for example, a l ist or form component) to which you want to add a context menu.
2. Choose the Menu Schema panel.
3. Choose Add Menu in the Menu Schema toolbar.
4. In the Attributes panel, enter a Context Menu ID .
It is useful to provide an explanatory name for your context menu.
5. Choose Add Menu Item in the Menu Schema toolbar.
6. In the Standard Attributes section of the Attributes panel, choose one of the following Item Types , and enter the attributes describ ed below each type:
Single Action
In the Action Assignment section of the Attributes panel, enter an FPM Event ID and the Menu Item Text .
Menu Checkbox
In the Action Assignment section of the Attributes panel, enter an FPM Event ID and the Menu Item Text .
Submenu
In the Standard Attributes section of the Attributes panel, enter text for the label of the submenu and the Context Menu ID of the context menu
which should appear as the submenu at runtime.
You have now created a context menu.
7. (Op tional) You can also compl ete the following fields if availab le:
Image
Separator Bar 
Needs More Information

Displaying the Context Menu


You have now created your context menu. You can assign it to an element in the component, or to the component as a whole. To do this, do one of the following:
 Assigning a Context Menu to an Element
Choose the <GUIBB> Schema panel and choose an element inside the panel. In the Standard Attributes section of the Attributes panel, enter the
Context Menu ID of the context menu you have just created. Save and test your application. The context menu app ears only for the element you chose; it
does not appear when you choose the secondary mouse button anywhere else on the screen.
 Assigning a Context Menu to a GUIBB
Choose the General Settings panel . In the Additional Settings section, enter the Context Menu ID . Save and test your appl ication. The context menu
appears wherever you click on the screen.
Displaying a Context Menu as an Action Menu

Once you have created a context menu you can choose to display it as an action menu instead of a context menu. To do this, see the section Displaying a
Context Menu as an Action Menu.

  1.2.4.3 Action Menus in GUIBBs


 Action menus are visible context menus available as text views in List, Tree, Form, and Form Repeater components only.
For the user, the behavior is similar to a context menu; the action menu is triggered by clicking the menu icon on the right side of the text view (see screenshot
below).

PUBLIC Page 101 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

 At design-time, action menus are created in the same way as context menus. There is, however, the option to dynamically change the action menus at runtime.
However this works completely differently to dynamic context menus. Unlike context menus, action menus are visible. Therefore, it is not possible to create them
on-demand; you can only change existing(action menus that are already configured. To do this, the GUIBB’s feeder class must implement the interface
IF_FPM_DYNAMIC_ACTION_MENU . This interface offers one method, PROCESS_ACTION_MENU , which is called when the user clicks on the action menu
icon. It pas ses the Action Menu ID (as defined in the configuration), the name of the field the action menu is attached to, the row index (for List and Tree
components) , and an instance of IF_FPM_CTXT_MENU  (see previous section, Context Menus in GUIBBs) allowing the action menu to be changed
dynamically.

  1.2.4.4 Displaying a Context Menu as an Action Menu

Use
For stylistic reasons, you might choose to display a context menu as an action menu at runtime. Although accessing these menu types is slightly different (context
menus use the secondary mouse button, action menus use the primary mouse button), technically, an action menu is a context menu.

Prerequisites
You have already created and configured a context menu.

Procedure
To display a context menu as an action menu, proceed as follows:
1. Op en FLUID, and choose the GUIBB whose context menu you want to disp lay as an action menu.

2. Choose the <GUIBB> Schema panel and choose the relevant element inside the panel.
3. Ensure that the Display Type of the element is set to Text View ; action menus can only be displayed using this type of Display Type .
4. In the Display Type Dep endent Properties section of the Attributes panel, in the Action Menu ID field, enter the Context Menu ID of your chosen
context menu.
5. Save and test your app lication.

  1.2.5 Quickviews

Definition
 A quickview is a read-only UI element which allows the user, at runtime, to view additional information (not displayed on the current screen) about an object
without having to navigate to other screens to obtain the information. Like a tooltip, a quickview appears (and disappears) on the UI during a mouse-over action by
the user.
The following types of quickview exist:
Thing Quickview
This is used to display information relating to a 'thing' (a business object for example). It is implemented using the Web Dynpro component
FPM_QUICKVIEW_THING.
Dataset Quickview
This is used to display information relating to a dataset. It is implemented using the Web Dynpro component FPM_QUICKVIEW_DATASET.
Image Quickview
This is used to display an image related to the field it is assigned to. It is implemented using the Web Dynpro component FPM_QUICKVIEW_IMAGE.
 A quickview can be assigned to a particular element of a generic UI building block (GUIBB) component inside an FPM app lication. For example, a quickview
could be assigned to a particular column in a table (implemented using a list component). As the user hovers the mouse over the rows in this column, the same
quickview is displayed for each row, but the data inside the quickview changes.
The information displayed in a quickview at runtime is determined both by the feeder class assigned to the configuration of the Web Dynpro components
mentioned above, and by the settings inside the FPM configuration editor, FLUID.
Quickviews can be exchanged with other quickviews dynamically. Therefore, quickviews that were not assigned to a particular GUIBB at configuration may still
appear on that GUIBB at runtime.

Structure at Runtime
The following screenshot shows an example of what a quickview (in this example, a thing quickview) might look like at runtime:

PUBLIC Page 102 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Figure 1: A Thing Qui ckview at Runtime

In this example, the quickview is triggered when the user hovers the mouse over a hyperlink.
 As the screenshot illustrates, a quickview may contain the following parts:
Quickv iew Title
Static; this title remains the same for each instance of the thing. It represents the type of thing and is independent of the instance title.
Instance Title
Dynamic; supplied by the feeder class assigned to the quickview configuration, and changes for each instance of the thing.
Icon
Optional.
Can be static or dynamic. Icons may be configured statically (the same icon is displayed at runtime for all instances of a thing) in FLUID or the feeder class
may provide the icon(s) at runtime.
 Attributes
The list of attributes available is determined by the field catalog of the relevant feeder class.

Activities
You can create, configure, and assi gn a quickv iew using the Quic kview Panel in FLUID. FPM also provides a fast-track method for image quickv iews.
Once a quickview is configured, it can be assigned to an individual element of a GUIBB; the Quickv iew ID is entered in the Disp lay Type Dependent
Properties section in the Attributes section of an individual element inside the <GUIBB> Schema panel in FLUID.
The fields avai labl e in the General Settings panel of the quickv iew component are component-dependent. Amongst others, are the following:
Quickv iew Title
This can be changed dynamically at runtime.
Image
If the image is dynamically created by the feeder class, the Image (Static) field is not available in FLUID.
You can edit the attributes' text and sequence, and, depending on the quickv iew type, also add a launchpad (disp lay type Link to Action ) to an attribute.
Each attribute has one of the following displ ay types: Text View, Image , Link to URL , and Link to Action , meaning that the information display ed here might
be in the form of an image or text, a hyperlink, or it might result in an action. You can change the display type to suit your requirements.

Related Information
Dynamic Calling of Quickviews
Interface: IF_FPM_G UIBB_Q V_DATASET
Interface: IF_FPM_GUIBB_QV_THING
Creating and Assigning a Q uickview
 Assigning Image Quickviews: Fast-Track Method

  1.2.5.1 Creating and Assigning a Quickview


 A procedure applicable for all types of quickviews.

Context
Quickviews can only be added to elements of a GUIBB configuration.

Procedure
1. In FLUID, in the Qui ckv iew Panel of the GUIBB configuration, choose Add Quick view and select the type of quickv iew you want to disp lay.

PUBLIC Page 103 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

The system displays the Quickv iew ID in the Attributes panel.


2. Enter a Configuration ID , and choose the Configure Quick view button.
3. Enter the relevant feeder class, and optionally, the feeder class parameters, and press OK .
FLUID then displays various panels allowing you to configure the new quickview.
4. Return to the GUIBB configuration (use the breadc rumb above the General Settings panel to do this).
5. Choose the <GUIBB> Schema panel, and selec t the row containing the field you wish to assi gn the quick view to. In the Attributes panel, enter the
quickview ID.

  1.2.5.2 Assigning Image Quickviews: Fast-Track Method


FPM offers a ready-to-use Image Quickview that can be assigned quickly and easily to a GUIBB configuration.

Context
 As with other quickview types, you can create an Image Quickview in the Quickv iew Panel in FLUID, and assign it to the GUIBB configuration in the <GUIBB
Name> Schema panel.
However, FPM provides you with the following, far simpler, method of creating and assigning and Image Quickview.

Note
 A prerequisite of this method is that the field catalog of the GUIBB's feeder class must contain an image field.

Procedure
1. In the <GUIBB Name> Sc hema panel, s elect the row containing the field you wish to assign an Image Quic kview to. Note that this field must have Text ,
Image , Link to URL or Link to Action display type.
2. In the Attributes panel in the Image Field , enter the name of the field in the field catalog containing the image.

  1.2.5.3 Dynamic Calling of Quickviews


 App lications can speci fy additional quickviews (that are not statically configured) at runtime; these are instantiated in addition to the configured quickviews.
This can be done by raising an FPM event of the event class type CL_FPM_DYNAMIC_QUICKVIEW_EVENT  with the Event ID FPM_DYNAMIC_QUICKVIEW
(constant CL_FPM_DYNAMIC_QUICKVIEW_EVENT => GC_EVENT_DYNAMIC_QUICKVIEW ) and the tabular event parameter NEW_QUICKVIEWS  (constant
CL_FPM_DYNAMIC_QUICKVIEW_EVENT => GC_EVENT_PARAM_NEW_QUICKVIEWS ) of type
CL_FPM_DYNAMIC_QUICKVIEW_EVENT => TY_T_QUICKVIEW .

The application can then exchange the quickview to be opened when hovering over a field using the existing mechanism. This can be done by implementing
interface IF_FPM_QUICKVIEW_SOURCE  and its method GET_QUICKVIEW_KEY  in the respective feeder class.

To find out which quickviews have already been instantiated, and to which feeder class fields they are assigned, the feeder class of the quickview source GUIBB
can call method GET_QUICKVIEW_INFORMATION  on the extended control interface instance (in the case of the Form GL2 GUIBB for example, this is an
instance of interface IF_FPM_FORM_EXT_CTRL ) that is passed to the feeder class in method GET_DATA .

  1.2.5.4 Interface: IF_FPM_GUIBB_QV_DATASET


Description of methods in the interface for a dataset quickview.
 As with the implementation of the GUIBB interfaces, implement an empty method even if your application does not actually require the method (to avoid a system
dump).

Table 1: Methods of IF_FPM_GUIBB_QV_DATASET Interface

GET_DEFINITION
All ows the feeder to provide all necessary in formation for confi guri ng a da taset qui ckview: the list of avail able fields and their properties and the li st of actions
(FP M events).

Parameter Description

EO_FIELD_CATALOG Is of type CL_ABAP_TABLEDESCR . The components of thi s object are the available
fields. The si mplest w ay to provide a field catalog is to create a table of a flat DDIC
structure containing all fields and then get the field catalog via EO_FIELD_CATALOG ?=
CL_ABAP_TABLEDESCR=>DESCRIBE_BY_NAME( <NAME> )

Note
The dataset quickview su pports only flat structures.When us ing deep structures,
only the highest level fields are available.

ET_FIELD_DESCRIPTION Here you can provide the additional inform ation needed to create the dataset quickview,
for example a link reference, LINK_REF .

EV_STATELESS_ENABLED Set feeder to stateless, so that i t can be used in stateless scenario (U I5).

ES_MESSAGE  A list of messages which shall be displayed in the message region.

INITIALIZE
Cal led at run time when the dataset quickview is created. It is the first feeder method which i s call ed from FPM.

Parameter Description

IT_PARAMETER Contains a l ist of the feeder parameters and the valu es for them specified in th e
configuration.

PUBLIC Page 104 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

IO_APP_PARAMETER  Application parameter 

IV_COMPONENT_NAME Web Dynpro: Component Name

IS_CONFIG_KEY Key components of configuration tables

IV_INSTANCE_ID Instance ID

FLUSH
The first feeder method which is called during an event loop. Whenever an FPM event is triggered (this includes all round trips caused by the dataset quickview
itself) this method is call ed. Us e it to forward ch anged dataset qui ckview data to other components i n the same application.

Parameter Description

IT_CHANGE_LOG Lists all changes made by the user.

IS_DATA Is a structure containin g the changed data.

PROCESS_EVENT
Called within the FPM event loop, it forwards the FPM PROCESS_EVENT  to the feeder cla ss. Here the event processin g can take pla ce and this is where the event
can be canceled or deferred.

Parameter Description

IO_EVENT The FPM event w hich i s to be processed

IV_RAISED_BY_OWN_UI  ABAP_TRUE if the event is raised by own UI

EV_RESULT The result of the event processing. There are 3 possible values:
EV_RESULT = IF_FPM_CONSTANTS=>GC_EVENT_RESULT-OK
EV_RESULT = IF_FPM_CONSTANTS=>GC_EVENT_RESULT-FAILED
EV_RESULT = IF_FPM_CONSTANTS=>GC_EVENT_RESULT-DEFER

ET_MESSAGES  A list of messages which shall be displayed in the message region.

GET_DATA 
Called within the FPM event loop and forwards the FPM PROCESS_BEFORE_OUTPUT  event tothe feeder class. Here you specify the qu ickview data after the event
has been processed.

Parameter Description

IO_EVENT The FPM event w hich i s to be processed.

IT_SELECTED_FIELDS The list of fiel ds necessary for the qui ckview rendering. Provide onl y the data for the
fields listed in this table; all other fields are neither visible at runtime nor used as
reference for visi ble fields.

IV_RAISED_BY_OWN_UI ABAP_TRUE  if the event is raised by own UI.

IV_KEY Serialized key for the quickview.

ET_MESSAGES  A list of messages which shall be displayed in the message area.

EV_DATA_CHANGED For performance reasons, the GUIBB adjusts the data in the quickview only if the data
has been changed. To indicate this, set this flag whenever you change the data to be
displayed within this feeder.

CS_DATA The quickview data to be changed.

GET_DEFAULT_CONFIG
Call this if you want to have a default configuration. Use it to call pre-configured quickview configurations when a user starts the FPM configuration editor. This
avoids the user, who uses a feeder clas s to create a qui ckview, ha vin g to create it from the beginn in g.

Parameter Description

IO_CONFIG Of type IF_FPM_GUIBB_QV_DATASET_CONFIG . This object provides the API to create


a default configuration.

CHECK_CONFIG
Cal l thi s if you want to make your own appl ication-specific checks on the configu ration in the FPM confi guration editor i mmediately before savin g.

Parameter Description

IO_CONFIG Of type IF_FPM_GUIBB_QV_DATASET_CONFIG . This object provides the API to read


the configuration to be saved.

ET_MESSAGES  A list of messages which shall be displayed in the message region.

  1.2.5.5 Interface: IF_FPM_GUIBB_QV_THING


Description of methods in the interface for a thing quickview.
 As with the implementation of the GUIBB interfaces, implement an empty method even if your application does not actually require the method (to avoid a system
dump).

Table 1: Methods of IF_FPM_GUIBB_QV_THING Interface

GET_DEFINITION
Allows the feeder to provide all necessary information for configuring a thing quickview: the list of available fields and their properties and the list of actions
(FP M events).

PUBLIC Page 105 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

Parameter Description

EO_FIELD_CATALOG Is of type CL_ABAP_STRUCTDESCR . The components of thi s object are the available
fields. The si mplest w ay to provide a field catalog is to create a table of a flat DDIC
structure containing all fields and then get the field catalog via EO_FIELD_CATALOG ?=
CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_NAME( <NAME> )

Note
The thing quickview supports only flat structures.When using deep structures, only
the highest level fields are available.

For all other methods and attributes of this interface, see the interface documentation for the dataset quickview.

  1.2.6 Moving Data between UIBBs at Runtime (Drag-and-Drop)


This section deals primarily with using the Drag-and-Drop feature to move data between the FPM GUIBBS. There is, however, a short description on the use of 
Drag-and-Drop in Freestyle UIBBs at the end of this section.
You can enable the Drag-and-Drop feature in GUIBBs to allow end-users to move data at runtime within and between individual generic user interface building
blocks (GUIBBs).
This feature allows you to determine, for example, whether you can move single or multiple rows of data from one list to another list, or to prohibit the transfer of 
data.
Individual GUIBBs may act as drag sources (that is, data can be moved from them), drop targets (that is, data can be moved on to them), or both. Individual
GUIBBs may also act as drag sources, or drop targets, for several other GUIBBs.
This feature is available in the following GUIBBs:
List ATS, List, Hierarchical List (Tree)

These GUIBBs may act as both drag sources and drop targets.
Form GL2, Form, Form Repeater 
These G UIBBs may act only as drop targets.
The Drag-and-Drop feature must be defined in the corresponding feeder class of the GUIBB.
See also 1761101 regarding the Drag-and-Drop feature in GUIBBs.

Related Information
Enabling Drag-and-Drop in GUIBBs
Processing Events in a Drag-and-Drop Operation
Defining Drag-and-Drop Attributes in GET_DEFINITION
Body-Specific Dropping
Row-Specific Dropping
Multiple Drag Sources and Drop Targets
Modifying Drag Sources & Drop Targets at Runtime
Drag-and-Drop in Freestyle UIBBs

  1.2.6.1 Enabling Drag-and-Drop in GUIBBs


You can define the settings for Drag-and-Drop in various feeder class methods of the corresponding GUIBB, and also in the FPM configuration editor, FLUID.
The Drag-and-Drop feature must be defined in the corresponding feeder class of the GUIBB. The feeder class interfaces to use are:
IF_FPM_GUIBB_LIST
IF_FPM_GUIBB_TREE
IF_FPM_GUIBB_FORM
IF_FPM_GUIBB_FORM_REPEATER

Drag-and-Drop can b e enabled or disabled for individual GUIBBs separately in an app lication.
The following table describes how and where you define the settings for Drag-and-Drop:

Table 1: Locations for Enabling Drag- and-Drop in G UIBBs

Location Description

Feeder class method GET_DEFINITION GET_DEFINITION  is called once, on start-up of the application. It all ows the feeder 
class to provide all necessary in formation for configuri ng Drag-and-Drop attributes usin g
parameter ET_DND_DEFINITION  (type structure FPMGB_S_DND_DEFINITION ).

Feeder class method GET_DATA GET_DATA  is called at run time on every round-trip. It allows the feeder class to provide
all necessary information for overriding Drag-and-Drop attributes at runtime using
parameter  CT_DND_DEFINITION  (type structure FPMGB_S_DND_DEFINITION ).

Note
This method is dependent on the Overri de at Runtim e field (described in more
detail later in this section).

FPM configuration editor, FLUID If not exceptionally configured in FLUID, the Drag-and-Drop definition entries provided
by the feeder class are evaluated and applied at runti me. However, if these entries do
not exactly meet the application requirements, some of them can be overwritten in the
GUIBB configuration, and/or modified at runtime.
On ly if Drag-and-Drop is first defined in the feeder class, does the menu option Drag-
and-Drop Settings appears in the FPM configuration editor, FLUID (ins ide the General
Settings panel of the relevant GUIBB configuration).

Note
Changes you make to attributes in FLUID take precedence over those defined in

PUBLIC Page 106 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

the feeder class.

  1.2.6.2 Processing Events in a Drag-and-Drop Operation


Summary of steps that occur during a drag-and-drop opeation.
When a drag source is dropped on to a drop target, the following steps occur:
1. The action handler on the drop target GUIBB raises an FP M event with the Event ID   FPM_DROP_COMPLETED  (constant
IF_FPM_CONSTANTS=>GC_EVENT-DROP_COMPLETED ), and the drop target GUIBB key as event source.
The drop event provides an FPM event parameter FPM_DROP_INFO  (constant IF_FPM_CONSTANTS=>GC_GUIBB_DND-DROP_INFO ; type
FPMGB_S_DROP_INFO ) which contains a table of the original Web Dynpro event parameters, and, for the drop target GUIBBs List ATS, List, Tree, and
Form Repeater, information about the drop position (  Drop Index  and Offset ).
2. During p rocessing of the drop event in step 1 above, each G UIBB that might be a vali d drag source must check whether it is indeed the current drag
source. This is done in the GUIBB method FLUSH  by evaluating the table of Web Dynpro event parameters that has been passed the drop event (as part
of the FPM event parameter FPM_DROP_INFO ). The relevant Web Dynpro event parameter in this table is DATA .
The GUIBB is the drag source of the current drag-and-drop operation if the value of DATA  is the same as the value of the property DATA  of the Drag
Source UI element of the GUIBB. The latter has been s et by the GUIBB runtime during the creation of the UI elements of its view, and normally has the
GUIBB key as its value.
3. If a GUIBB has identified itself as the drag s ource, it adds imp ortant drag source information to the drop ev ent of step 1. This occurs i n the method FLUSH .
The drag source information is provided with event parameter FPM_DRAG_SOURCE_DATA  (constant IF_FPM_CONSTANTS=>GC_GUIBB_DND-
DRAG_SOURCE ; type FPMGB_S_DRAG_AND_DROP ), and contains the following parameters:
DRAG_UIBB_CONFIG_KEY
The GUIBB key of the drag source (as a string).
DRAG_SOURCE_DATA

 A pointer representing the whole data set from where the drag is initiated.
DRAG_SOURCE_INDICES
The indices of the dragged entries in this set of data records
DROP_POSITION
The index where the drop occurs; applicable only for List and Hierarchical List (Tree) GUIBBs.
The drop event is then further processed like any other FPM event. This means that a GUIBB feeder class can react appropriately on the FPM drop event, in
particular in the feeder class methods PROCESS_EVENT  and GET_DATA . For example, in this way, a drag source GUIBB feeder class can delete dragged
entries, and the corresponding drop target GUIBB feeder class can insert them.

  1.2.6.3 Defining Drag-and-Drop Attributes in GET_DEFINITION


Details of the attributes required when defining Drag-and-Drop using the GET_DEFINITION  feeder class method.
The line structure (type  FPMGB_S_DND_DEFINITION ) of the exporting parameter ET_DND_DEFINITION  in feeder method GET_DEFINITION  contains
the following attributes:
Type
Name
Scope
Enabled (Status)
Tags
Override
These attributes are described in detail in the following table:

Table 1:

Attribute Details

Type Defines wh ether the UIBB i s a drag source or a drop target (and whi ch kind of drop target).
Cannot be overwritten in the GUIBB configuration, nor modified at runtime.
The followi ng types are supported:
DRAG :
Type for a drag source. Available for GUIBBs List ATS, List, and Tree. It allows dragging one or multiple entries from the
drag table/ tree.
DROP ON BODY
Type for a drop target. Available for the G UIBBs L ist ATS, List, and Tree. It allows dropping a drag source between two
entries in the drop table/ tree, or in to an empty drop table/tree. It does not allow dropping the drag source on an existin g
entry in the drop table/tree.
Different flavors for thi s drop type exist:
Unspecific
The drag source can be dropped between any two entries in the drop table/ tree.
Specific
The drag source can be dropped between any or between two specific entries in the drop table/ tree. Body-specific
dropping means, in WD ABAP/ UR, terms dropping on the row edge of a table/ tree entry. This is described later in
the section Body-Specific Dropping.

Note
The Web Dynpro UI element C-Table supports this feature; the Web Dynpro UI element Table does
not. Therefore, this feature is available only for the GUIBB List ATS, and for the new version of the
GUIBB Tree.
The previous version of the GUIBB Tree is based on the WD UI Element Table . If row-specific
dropping i s required h ere, note that an entry that can be dropped on a specific tree node can alw ays be
dropped between the child entries of this node as well. In this way, the previous version of the GUIBB
Tree also provides a kind of body-specific dropping.

DROP ON ROW
Type for a drop target. Available for the G UIBBs L ist ATS, List, and Tree.

PUBLIC Page 107 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

It allows dropping a drag source on to an existing entry i n the drop table/ tree. However, i t is n ot possible to drop the drag
source between two entries, or into an em pty drop table/ tree.
Different flavors for thi s drop type exist:
Unspecific
The drag source can be dropped on any entry i n th e drop table/ tree
Specific
The drag source can be dropped on any, or on specific entries in the drop table/ tree. This is described later in the
section Row-Specifi c Dropping.

Note
The previous versi on of the G UIBB Tree is a special case (for reasons described above). If row-specific
dropping i s requir ed there, note that an entry that can be dropped on a specific tree node can alw ays be dropped
between the child entries of this node as well. In this way, the previous version of the GUIBB Tree also
provides a kind of body-specific dropping.
DROP
Type for a drop target. Available for the List ATS, List, Tree, Form Repeater, Form GL2, and the original Form.
For a table or a tree, an entry of thi s drop target type is treated as if there were two drop target entries, one of type Drop
on Row , an d one of type Drop on Body .
For a Form Repeater or Form GL 2, this drop target type allows dropping a drag source on to the whole form , wh ereas for 
the original Form, it allows dropping a drag source on single form groups.

Name  A name is required in order to distinguish multiple drop entries of the same type. This is currently only relevant if a body-specific
and/ or a row-specific drop behavior is required.

Note
Cannot be overwritten in the GUIBB configuration, nor  modified at runtime.

Scope Defines whether dropping is:


Local
Dropping is possible onl y on the drag source itself. Use constant
IF_FPM_GUIBB_CONSTANTS=>GC_DRAG_DROP_SCOPE-LOCAL .
Global
Dropping is possible on any other GU IBB that supports the drag-and-drop mechanism . Use constant
IF_FPM_GUIBB_CONSTANTS=>GC_DRAG_DROP_SCOPE-GLOBAL .
Of course, i n order to perform a real dropping operation, drop targets with appropriate tags m ust exist i n the target GUIBB. If not
further s pecified, th e default scope is Global .
Can be overwritten in the configuration and/or modified at runtime. The latter is described in the section Modifying Dr ag
Sources and D rop Targets at Run time.

Enabled (Status) Defines w hether a drag-and-drop entry is enabled or not; if a drag source is disabled, dragging is not possible. If a drop target is
disabled, dropping on this target is not possible.
Can be overwritten in the configuration and/or modified at runtime. The latter is described in the section Modifying Dr ag
Sources and D rop Targets at Run time

Tags Specifies th e relevant tags of the drag-and-drop entry. Mu ltiple tags can be separated by a space. Wild cards, su ch as ‘H UGO *’,
are supported.
 A drag source can only be dropped on a drop target if their Tags  match each other, that is, at least one of the tags of the drag
source must be part of the tag list of the corresponding drop target. If this is n ot so, dropping is not possible.
Can be overwritten in the configuration and/or modified at runtime. The latter is described in the section Modifying Dr ag
Sources and D rop Targets at Run time.

Override Defines whether the properties (for example, the Scope  or the tag list) of the drag-and-drop entry can be m odified at runtim e or 
not.
Can be overwritten in the configuration in FLUID.

  1.2.6.4 Body-Specific Dropping


This feature enables an application to control dropping of drag sources on to the row edge level in the GUIBBs List ATS and Tree.
In this way, it is p ossible to enable dropp ing between two particular entries in the drop table/ tree, but to forbid it between other entries.
For the GUIBB Tree, this feature is, in principle, only supported in the new version of the GUIBB Tree that uses the Web Dynpro C-table. However, in the original
version of the GUIBB Tree a kind of body-specific dropping exists too; if the row-specific dropping feature is used, an entry that can be dropped on a specific tree
node can always be dropped between the child entries of this node too.
The technical mechanism behind the body-specific dropping feature is, in principle, based on different tag lists that are assigned to the single rows of the drop
table. To provide such a pool of tag lists, multiple drop targets are required because a drop target can only have one tag list. The drop targets are then bound to
the data table. For this, the data table must have one explicit column that contains the name of the relevant drop target at runtime, per row.
To use this feature, you must ensure the following:
Depending on the number of different tag lists that an application requires for controlling the drop behavior on the row edge level, a corresponding number of 
drop target entries of Drop on Body type or Drop  type with unique names must be defined by the GUIBB feeder class in method
GET_DEFINITION . The conditions for meaningful drop target combinations are described in detail in another section.
The name of a (technical) reference field of string  type must be s pecified with parameter DROP_ON_BODY_TRGT_NAME_REF  in the exporting
parameter ES_OPTIONS  (which is of FPMGB_S_LIST_OPTIONS  type for the GUIBB List ATS, and of FPMGB_S_TREE_OPTIONS  type for the GUIBB
Tree). The reference field must of course be part of the GUIBB field catalog. At runtime, the reference field must contain the name of the relevant drop target
for each data record in the data collection. As for any other feeder class field, the field content can be provided in the feeder class method GET_DATA .

  1.2.6.5 Row-Specific Dropping


This feature enables an application to control dropping of drag sources on a row level in the GUIBBs List ATS, List, and Tree.
In this way, it is possible to enable dropping on particular entries drop table/ tree but to forbid it on other entries.

PUBLIC Page 108 of 110


© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

The technical mechanism behind the row-specific dropping feature is in principle based on different tag lists that are assigned to the single rows of the drop table.
To provide such a pool of tag lists, multiple drop targets are required because a drop target can only have one tag list. The drop targets are then bound to the data
table. For this, the data table must have one explicit column that contains the name of the relevant drop target at runtime, per row.
To use the feature, you must ensure the following:
This feature enables an application to control dropping of drag sources on a row level in the GUIBBs List ATS, List, and Tree.
Depending on the number of different tag lists that an application requires for controlling the drop behavior on the row level, a corresponding number of drop
targets of Drop on Row  type or Drop  type with unique names must be defined by the GUIBB feeder class in method GET_DEFINITION . The
conditions for meaningful drop target combinations are described in detail in another section.
The name of a (technical) reference field of type string  must b e sp ecified with parameter DROP_ON_ROW_TRGT_NAME_REF  in the exporting

parameter ES_OPTIONS  (which is of type FPMGB_S_LIST_OPTIONS  for the GUIBB List ATS, and of type FPMGB_S_TREE_OPTIONS  for the GUIBB
Tree) of the feeder class method GET_DEFINITION . The reference field must of course be part of the GUIBB field catalog. At runtime, the reference field
must contain the name of the relevant drop target for each data record in the data collection. As for any other feeder field, the field content can be provided in
the feeder method GET_DATA .

  1.2.6.6 Multiple Drag Sources and Drop Targets


The feeder class can, in principle, define multiple drag sources and multiple drop targets of the same type. However, in order to define meaningful drag-and-drop
entries, several points must be considered.
To define meaningful drag-and-drop entries, the following points must be taken into account:
Define only one drag source entry.
Web Dynpro ABAP does not support more than one. FPM therefore considers only one drag source at runtime.
Define multiple drop targets of the same type with unique names.
Only one entry p er type and name is considered by FPM at runtime.
If body-specific dropping is required, it is mandatory to define multiple drop targets of Drop on Body  or Drop  type.

Each drop target must have a unique name. Note that each drop target entry of Drop  type will result in two drop targets, one of Drop on Body  type and
one of Drop on Row  type.
If row-specific dropping is required, it is mandatory to define multiple drop targets of Drop on Row  type or Drop .
Each drop target entry must have a unique name. Note that each drop target entry of Drop  type will result in two drop targets, one of Drop on Body
type and one of Drop on Row  type.
Further drop types are detailed in the following table:

Table 1: Dr op Types

Type of Drop Required Drop Type to Use

Body-unspecific dropping is required ( bu t body-speci fi c dr oppi ng is not). O nl y on e en tr y of Drop on Body  type or Drop  is meaningful.
Further entri es are neglected by FPM at ru ntim e. Note that a drop target entry of Drop
type results in two drop targets, one of Drop on Body  type and one of Drop on
Row  type.

Row-unspecific dropping is required ( bu t row-speci fi c droppi ng i s n ot). O nl y on e en try of Drop on Row  type or Drop  is meaningful.
Further entri es are neglected by FPM at ru ntim e. Note that a drop target entry of type
Drop  results in tw o drop targets, one of Drop on Body  type and one of Drop on
Row  type.

Both body-unspecific and row-unspecific dropping is required (and which must One drop target of Drop on Body  type and one of Drop on Row type is needed.
be controlled completely independently of each other).

Both body-unspecific and row-unspecific dropping is required (but do not need One drop target of Drop  type is sufficient, since it will result in two drop targets, one of 
not to be controlled i ndependently of each other). Drop on Body  type and one of Drop on Row  type.

Both body-specifi c and row-specific dropping i s requ ired (and which mu st be Onl y drop targets of Drop on Body  type and Drop on Row  type are required; no
controlled completely in dependently of each other). drop targets of Drop  type. Each drop target must have a unique name within the
complete set of drop targets.

Both body-specifi c and row-specific dropping i s requ ired ( and which do not need Drop targets of Drop  type are sufficient wh ere dependence is required, since each of 
to be controlled completely in dependently of each other). those drop targets resul ts in two drop targets, on e of Drop on Body  type and one of 
Drop on Row  type.

A mix ture of body-un specific and row-specific or body-specific and row- The above-menti oned conditions are valid.

unspecific dropping is required.

Modifying Drag Sources & Drop Targets at Runtime


It is possible to modify the properties of drag sources and drop targets at runtime. Currently, this mechanism is supported by the GUIBBs List ATS, List, and
Tree.
 As a prerequisite, the attribute OVERRIDE  of the corresponding drag source or drop target must have the value X.
The attribute value can either be set by the feeder class itself, when specifying the Drag-and-Drop definition entries in method GET_DEFINITION , or by an
administrator in the GUIBB configuration.
 At runtime, the current settings of the drag sources and drop targets are passed to the feeder class using the changing parameter CT_DND_ATTRIBUTES  of 
method GET_DATA . The feeder class can modify these settings and pass them back using the same parameter. To notify the GUIBB runtime about the
changes, the exporting parameter EV_DND_ATTR_CHANGED  of method GET_DATA  must be set to X by the feeder class too. The GUIBB runtime considers the
changed settings of a drag source or a drop target if the modification is allowed for this entry, that is, if OVERRIDE = X .

By using this feature it is possible, for example, to disable dragging for particular entries of a table/ tree. This can be done by modifying the property ENABLED
of the drag source in GET_DATA  based on the selected and dragged table/ tree entry.
It is not possible with this feature to add or remove drag sources or drop targets, or to change their type or name.

 
PUBLIC Page 109 of 110
© 2014 SAP SE or an SAP affili ate company. All rights reserved.
http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content
5/18/2018 SaphelpNw74en Eeb36db238eb4fbc96c0638d9f903212Content-slidepdf.com

  1.2.6.8 Drag-and-Drop in Freestyle UIBBs


This section describes the details for ensuring Drag-and-Drop in freestyle UIBBs, as opposed to the GUIBBs.
If a freestyle UIBB is used as a drag source or drop target instead of an FPM GUIBB, similar steps to the ones described in the section Event Processing in a
Drag-and-Drop Operation must be performed by the respective freestyle UIBB.

For this, FPM provides a helper-class CL_FPM_GUIBB_DRAG_AND_DROP .


CL_FPM_GUIBB_DRAG_AND_DROP  contains the following methods and parameters:

RAISE_DROP_EVENT
FPM GUIBBs use this method internally to raise the FPM_DROP_COMPLETED  event durin g the drop action.
Note that applications can also use thi s method to raise the FPM_DROP_COMPLETED  event during the drop on UIBBs. This can be called in ON_DROP_ACTION  method of the
UIBB view.

IS_DROP_INFO This attribute sets the drop information of the GUIBB from ON_DROP_ACTION  method.

IO_COMP This attribute sets the source UIBB configuration details (Config ID + Config type + Config variant).

IV_COMP_NAME This attribute sets the source UIBB Component Name.

SET_FPM_DROP_DATA
This m ethod is called from the FLU SH m ethod of the UIBB to set the drag and drop data.

IO_DATA This attribute has a reference to the data from where th e drag occurred.

IO_EVENT This attribute sets the event FPM_DROP_COMPLETED  to which the dragged data has to be set.

IT_INDICES This attribute sets the selected (dragged) data.

IV_DROP_POSITION (OPTIONAL) This attribute sets the drop position i n the drop target.

IV_CONFIG_KEY (OPTIONAL) This attribute sets the drag source config key to i dentify the sour ce.

Note
Method RAISE_DROP_EVENT  of this class can be used for performing step 1 in the section Event Processing in a Drag-and-D rop Operation, and
method SET_FPM_DROP_DATA  can be used for performing step 3.
Step 2, however, is app lication-specific.

  1.3 Working with Floorplans


 A section covering the features and activities concerning the various floorplans.

Related Information
Working with the OVP Floorplan
FPM Error Page
Variants
Initial Screen
Confirmation Sc reen
Default Actions (Hot Key = Enter)
Dialog Boxes
Identification Region (IDR) of GAF and OIF Applications
 Adding and Activating Sub-Steps for GAF Appli cations

http://slidepdf.com/reader/full/saphelp-nw74-en-ee-b36db238eb4fbc96c0638d9f903212-content

You might also like