Professional Documents
Culture Documents
com
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.
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
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
Related Information
FPM Developer Tools
Working with GUIBBs
Working with Floorplans
Working with FPM Framework Features
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
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
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)
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.
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.
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
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.
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
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.
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 .
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.
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.
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:
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:
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.
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.
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
Features
You can personalize FLUID in the following ways:
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)
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)
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
More Information
Editing Applications with FLUID
Wiring -Transferring Information between UIBBs
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
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
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
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
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
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.
Next Steps
Generic User Interface Building Block (GUIBB)
Flexible User Interface Designer (FLUID)
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.
Next Steps
Flexible User Interface Designer (FLUID)
Generic User Interface Building Block (GUIBB)
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.
More Information
Editing Applications with FLUID
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
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
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
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.
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
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)
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.
More Information
Analyzing Applications with the Runtime Analysis Tool (RAT)
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
More Information
Flexible User Interface Designer (FLUID)
Context-Based Adaptations (CBA)
Related Information
GUIBBs in Detail
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 .
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
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:
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.
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:
Note
BICS = Business Intelligence Consumer Services
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
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.
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_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_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_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
FPM_NAVIGATE FPM navigation action. The navigation target can be configured using the defined
parameter structure FPM_S_EXTERNAL_NAVIGATION_INFO .
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.
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_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_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.
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
Related Information
Chart Component
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
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.
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.
Related Information
Interface: IF_ FPM_ GUIBB_ ATTRIBUTE_FILTER
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.
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
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
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_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_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 ).
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.
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 .
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
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
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
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.
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:
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.
Related Information
FPM Chart UIBB: A Data-Model Driven Approach
Interfaces for the Chart UIBB
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
Related Information
Chart Types: Minimum Requirements
001 Line 1 1 1 1
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
010 Area 1 1 1 1
2 1
Bar 2 1
023 Dual Percentage Stacked 1 1 1 1
Column 2 1
030 3D Column 1 1 1 1
2 1
031 3D Bar 1 1 1 1
2 1
036 Bubble 1 1 1 1
2 1 1 2
3 1
037 Radar 1 1 1 1
039 3D Donut 1 1 1 1
2 1
040 3D Pie 1 1 1 1
2 1
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.
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
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 .
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.
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
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 .
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.
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.
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
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.
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
method is called. Use it to forward changed form data to other components in the same application.
Parameter Description
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
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:
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
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.
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.
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 .
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 .
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.
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.
Related Information
Melting Groups
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.
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.
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.
_ _
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
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.
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:
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.
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
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 withi n the FP M event loop. Here you specify the form repeater data after the event ha s been processed.
Parameter Description
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.
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
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
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:
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.
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
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
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.
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.
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:
Parent Key This column of a table contains the parent Mandatory Any
element in the hierarchy at any level.
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
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
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. Here you s pecify the Tree data after the event has been processed.
Parameter Description
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.
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.
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
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.
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
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 .
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.
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
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)
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.
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)
Parameter Description
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
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
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
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
Related Information
Interface: IF_FPM_NAVIGATION
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.
Related Information
Attributes of the List Component
FPM Events and the List Component
Interface: IF_FPM_GUIBB_LIST
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
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
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).
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.
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
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
More Information
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.
Related Information
Personalizing 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
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:
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:
SET_NEW_DATA Gets new data and resets the change log ( DATA_IS_NEW returns TRUE value)
Related Information
Edit Scenarios for List ATS UIBB: Guidelines
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.
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 ).
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.
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 .
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
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.
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.
Note
Clearing sorting rules also results in clearing grouping rules. The event does not clear any filter rules.
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:
~icon/yellow Undecided
~icon/green Approved
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 .
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.
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.
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).
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.
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.
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.
Together with the existing exp ort parameter EV_DA TA_CHANGED the following situations are possi ble:
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
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).
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.
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.
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
SET_NEW_DATA Gets new data and resets the change log ( DATA_IS_NEW returns TRUE.
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 :
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:
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.
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
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.
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.
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:
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
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)
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.
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 .
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.
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.
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 .
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
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:
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
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 .
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
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:
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.
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' ) ).
" ***********************************
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
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.
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.
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 .
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
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
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.
Parameter Description
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
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
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.
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
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.
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.
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:
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 .
in a dialog box
Related Information
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. 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.
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.
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
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:
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):
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)
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
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.
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
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.
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.
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
2. Assign a Search Criteria element to the Search Group using drag-and-drop in the Search UIBB Schema panel.
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:
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 .
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.
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).
'123*' 123*
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.
DE D
TH 2
ES S
D DE
2 TH
S ES
Example
Range Conversion: ALPHA
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*
Example
Range Conversion: ISOLA
Table 2: Function module CONVERSION_EXIT_ISOLA_RANGE_I:
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.
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
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
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
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*
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(…) .
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.
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.
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
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
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_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
FPM_SEARCH_STD_DIALOG (constant
IF_FPM_GUIBB_SEARCH=>
FPM_SEARCH_STD_DIALOG ) is used for a
multi-value field pop up.
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
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
Attribute Description
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
IT_SELECTED_COLUMNS_OF_RESULT Indicates whi ch column s have been configured for the result table.
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
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
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
Definition
A generic design template used specifically for displaying data in a master/detail format.
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.
Related Information
Changing the Tabbed Component Dynamically at 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'.
Note
Even though all Master UIBBs can be hidden or removed, the last Details UIBB on a tab cannot be hidden or removed.
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 .
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.
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
Method Description
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.
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.
POSITION Add the xpos , ypos , and zpos here according to the s cenario type (maps or 3D
visuals).
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 .
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).
Note
If more than one of these options is assigned to a field, the one highest in the above list has priority.
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.
Fixed Values
A set of fixed values can be assigned by the feeder class in the field description in field FIXED_VALUES .
Related Information
UIBB Invalidation and Re-instantiation
Dynamic GUIBB/Quickview Configuration Exchange
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.
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.
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.
Related Information
Creating a Context Menu Dynamically
Creating a Context Menu in FLUID
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
PROCESS_CTXT_MENU
Allows the feeder class to provide a context menu
Parameter Description
GET DETAIL
Gets the detail information for this context menu
Parameter Description
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.
Table 3:
GET_SUBMENU
Returns a submenu
Parameter Description
Table 4:
REMOVE_ITEM
Removes the specified item from a context menu
Parameter Description
Table 5:
ADD_ACTIONITEM:
Adds a new Action Item to the menu
Parameter Description
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:
ADD_SUBMENU:
Creates and adds a n ew submenu to the Context Menu
Parameter Description
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).
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).
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
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.
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.
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:
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
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.
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.
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 .
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).
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.
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
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
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
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
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.
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.
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
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
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).
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.
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
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:
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
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.
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.
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.
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.
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 .
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
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.
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
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).
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.
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.
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