1. FPM Basics



Comments



Description

FPM BasicsPDF download from SAP Help Portal: http://help.sap.com/saphelp_nw74/helpdata/en/5b/1c78ba21424fd9b84f4d09e370b5a1/content.htm Created on January 22, 2016 The documentation may have changed since you downloaded the PDF. You can always find the latest information on SAP Help Portal. Note This PDF document contains the selected topic and its subtopics (max. 150) in the selected structure. Subtopics from other structures are not included. © 2016 SAP SE or an SAP affiliate company. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP SE. The information contained herein may be changed without prior notice. Some software products marketed by SAP SE and its distributors contain proprietary software components of other software vendors. National product specifications may vary. These materials are provided by SAP SE and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty. SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE in Germany and other countries. Please see www.sap.com/corporate-en/legal/copyright/index.epx#trademark for additional trademark information and notices. Table of content PUBLIC © 2014 SAP SE or an SAP affiliate company. All rights reserved. Page 1 of 16 5 FPM/Web Dynpro ABAP Adjustment Concept PUBLIC © 2014 SAP SE or an SAP affiliate company.3 User Interface Building Blocks (UIBBs) 1.3.4.3 Triggering Application-Specific Events 1.2.2 Notes Component 1.1 Feeder Class 1.1.2 Floorplans 1.1 Raising Standard FPM Events 1.3.3 Floorplan for Object Instances (OIF) 1.2.2 Generic User Interface Building Blocks (GUIBBs) 1.2 Floorplan for Guided Activity (GAF) 1.4.7 Different Categories of Web Dynpro Interfaces 1.8 Triggering a Data-Loss Dialog Box in the FPM Event Loop 1.6 Key Web Dynpro Methods used in FPM 1.4.3.Table of content 1 FPM Basics 1. All rights reserved.3 Reuse User Interface Building Blocks (RUIBBs) 1.4.3.3.4 FPM Event Loop 1.2.1 Stacking of UIBBs in a Column 1.2 Triggering the FPM Event Loop 1.1 Attachment Component 1.4.3.4 Floorplan for Quick Activity (QAF) 1.2.3.2.2.1 Structure of a Floorplan Manager Application 1.1 Floorplan for the Overview Page (OVP) 1.1 Interface: IF_FPM_UI_BUILDING_BLOCK 1.3.4 Asynchronous Callback 1.5 Interaction with Web Dynpro Phase Model 1.4. Page 2 of 16 .4.4. Note that the tabbed component is included only to show that it is a special kind of GUIBB that contains other GUIBBs. The figure below illustrates an FPM application. These user-specific views are referred to as UI building blocks (UIBBs). little control over the layout of their content. Page 3 of 16 . For example. To ensure that your application has a harmonized look and feel. you can assign additional Web Dynpro components as user-specific views to display your content. FPM provides you with templates. Using explicit configurations of the above components. and the essential components of an FPM application. Note There are different types of UIBBs: Freestyle UIBBs These components are created outside the FPM framework. there are templates to display your content in a form layout (Form GUIBB). They are explained in detail in another section. and that there is consistency in the UI screens. the GUIBBs. They are used for application composition and UI assembly. you can compile most of the common application user interfaces. by application developers. PUBLIC © 2014 SAP SE or an SAP affiliate company. and in a list layout (List GUIBB). showing a floorplan configuration containing two GUIBBs (for form layout and tab page layout) and a single freestyle UIBB. for displaying your content. therefore. FPM has. for example. UIBBs and GUIBBs are explained in greater detail in another section.the FPM GUIBB takes care of that. Generic User Interface Building Blocks (GUIBBs) FPM makes life easier for application developers. All rights reserved. Related Information Structure of a Floorplan Manager Application Floorplans User Interface Building Blocks (UIBBs) FPM Event Loop FPM/Web Dynpro ABAP Adjustment Concept 1. When using a Form GUIBB. you don't have to worry about aligning input fields .1 FPM Basics An introduction to FPM concepts. Floorplans define the general layout and interaction of an application. By combining a configuration of a floorplan with configurations of the UIBBs. in the Web Dynpro ABAP development environment. The interfaces can be changed afterwards by changing both the floorplan and the UIBB component configurations.1 Structure of a Floorplan Manager Application A Floorplan Manager (FPM) application is a Web Dynpro application that is assigned one of the following Web Dynpro components: FPM_OVP_COMPONENT FPM_GAF_COMPONENT FPM_OIF_COMPONENT Each of the above components provides the application with a different type of floorplan. Floorplan for Overview Page Use this floorplan for activities that relate to managing business records.2 Floorplans Concept To improve the uniformity of user interfaces of applications in the Web Dynpro ABAP environment. floorplans form the basis of an application. an activity that is not regularly performed or is unknown by the user. The content for an application is supplied by the user interface building blocks (UIBBs) which are added to the pages within a floorplan configuration. The overview page (OVP) floorplan provides an overview of all important information regarding a single instance of an object (such as a sales order. You edit the floorplan component configuration of an application using the FPM configuration editor. therefore. Floorplan for Quick Activities Use this floorplan when the user activity can be performed in one step and on one screen. identifying. The following list displays the floorplan types that are available and provides guidelines as to when to use them: Floorplan for Guided Activities Use this floorplan when the user carries out an activity for which he or she requires guidance. Page 4 of 16 . for example. It is a combination of user interface (UI) 'patterns' arranged in a specific order in an application that allows a user to accomplish a certain activity.Figure 1: Example Structure of a Floorplan Manager Application Related Information Floorplans User Interface Building Blocks (UIBBs) 1. Integration Floorplans form the basis of an application's layout. that is. Related Information PUBLIC © 2014 SAP SE or an SAP affiliate company. Each floorplan represents a different type of user activity and. or an account). an employee. Each floorplan follows the SAP design standards for UI and is implemented as a separate Web Dynpro component. All rights reserved. searching for. editing or deleting records. The OVP floorplan supersedes the Object Instance floorplan (see below). for example. This floorplan provides a framework for breaking down the activity step by step. A floorplan is a template. and maintaining data for an object. The OVP floorplan has highly flexible page layout possibilities and numerous user personalization features. that is. for a very simple activity. FLUID. Floorplan for Object Instances Use this floorplan for activities that relate to managing business records or objects. for example editing or deleting records. Floorplan Manager (FPM) lets you implement floorplans. or on top of. and Sequence Index attributes of the UIBB. and even stacked upon each other to form a tab-strip. Assignment Blocks A UIBB inside a section is rendered with a panel. or flat without a panel. PUBLIC © 2014 SAP SE or an SAP affiliate company. it is known as an assignment block. change. You assign the UIBBs and GUIBBs to the individual columns within a section. a dialog box. Page 5 of 16 . if you remove the last UIBB from a section at runtime. or a confirmation screen. The system only displays the section at runtime if you have assigned UIBBs to that section.Related Information Floorplan for the Overview Page (OVP) Floorplan for Guided Activity (GAF) Floorplan for Object Instances (OIF) Floorplan for Quick Activity (QAF) Working with Floorplans 1. An assignment block may have its own toolbar. for example. Toolbars An OVP application may have several toolbars specific to OVP components: Global toolbar (specific to the whole page). Section Each page consists of one or more sections. the individual sections can be recognized by the number of columns they contain and by their differing column layouts. You can specify the position of a UIBB in a section using the Column . These allow you to define the detailed structure of a page. There are various page types. for example. editing pages to add. Various layouts are possible for a section. The following screenshots illustrate how an application based on an OVP floorplan might look at runtime: Figure 1: OVP Floorplan Structure of an OVP Application The OVP floorplan consists of the following components: Page An OVP floorplan consists of at least one page (content area). the page at runtime in a non-collapsible. Runtime Layout At runtime. users can navigate to various pages. The toolbar elements are also rendered inside the panel header. differing mainly in the number of columns into which the section is divided. However. these panels can be moved around the UI. allowing you to find and select entries quickly within a large quantity of related objects. causing all UIBBs to display details relevant to the object selected in the panel. You can use this floorplan to model an application interface that initially displays an overview of the most important data to users for a business object such as an employee or a sales order. An OVP application may also display a Page Master panel (explanation below). an OVP application consists of content displayed in a number of collapsible panels. the system shows an empty section as a possible destination for a UIBB if the user moves the UIBB over that section again.2. Depending on the configuration of the application. Section columns can be enabled for stacking. Assignment blocks and UIBBs are connected to the Page Master by FPM events or by wiring. a page can be a main page (for displaying the most important or top-level information). It's title is displayed in the panel header. a sub-overview page (for displaying a certain subsection of information about a business object). resizable panel. Row . At runtime. Each section has its own layout. or delete data. be moved on top of each other to form a stack (tab-strip) where each UIBB is represented as a tab. The Page Master can be created and influenced by the OVP APIs at runtime. so that the UIBBs may. at runtime. Selecting an object in the panel triggers a refresh in the assignment blocks and UIBBs on that page. then one page is flagged as the default. if rendered as a panel. Page Master This optional area appears on the left side. The OVP floorplan has numerous layout possibilities at design-time and can be easily personalized at runtime. It allows an object selection that is valid for all assignment blocks and UIBBs on the page.1 Floorplan for the Overview Page (OVP) A design template that dictates the structure and behavior of a user interface of an overview page (OVP). All rights reserved. and can contain numerous application-specific user interface building blocks (UIBBs). From there. If multiple pages exist. the UIBBs can be dragged at runtime and dropped onto each other in that column. In the Attributes panel of Page Master and UIBB toolbars there is a Capture Actions field that enables the provision of extra action buttons on the toolbar. If stacking is enabled for a section column. the Overview Page Schema panel displays the following: Pages Choose the buttons in the Navigation panel to add. Row . For more information about what you can configure in FLUID. you can add and remove a Page Master to a page. and choose to include a Page Master panel on a page. thus building a stack in which each UIBB is represented by a tab. All rights reserved. and change the order they appear on the toolbar. If you select the Capture Actions field. and the resulting buttons are added to the toolbar alongside the configured buttons. their property Collapsed is set to TRUE . specify the layout of the individual sections.2. and Index (see figure below): There are two possible states for a stacked panel: Expanded In an expanded stacked panel there is exactly one UIBB that is expanded. 1. In the FPM configuration editor. The expanded UIBB is the active UIBB in the stacked panel. delete. In FLUID. as well as specifying attributes such as button text and event attributes. that is. and copy different pages in your application. UIBBs can be stacked using appropriate values for the properties Column (= Location). You can enable each section column for 'stacking'. Assignment Blocks and UIBBs In this panel. add UIBBs to a section. that is. FLUID.1 Stacking of UIBBs in a Column In an OVP application at runtime. This is known as a stacked panel. You can specify attributes of each section of an OVP floorplan. you can specify the order in which several UIBBs within a section appear and whether a particular UIBB should be visible or not. Choose the Toolbar Schema panel to access the attributes of the individual toolbars and their elements within an application. For example. see the field help for the individual attributes in the system. These actions arise when a UIBB exposes actions at runtime (for example when the UIBB is based on a generic UIBB and the list of actions is provided by the feeder class). Its property Default In PUBLIC © 2014 SAP SE or an SAP affiliate company. FLUID.1. and specify attributes such as its position. You can also specify how big the content area of an assignment block should be. All other UIBBs are collapsed. UIBBs inside a column can be moved on top of each other to form a stack. Each UIBB is represented as a tab in a tab strip. its property Collapsed is set to FALSE . Page Master Area In this panel.Assignment block (UIBB) toolbar Page Master toolbar OVP in Design-Time (FLUID) You can view the design-time structure of an OVP application with the FPM configuration editor. Amongst other things. Page 6 of 16 . Sections You can add and remove sections in this panel. Here you can add and remove different toolbar elements such as buttons and button choices. you can add and delete sections. you can add and remove UIBBs to and from a section. FPM then uses the UIBB-API to determine the available toolbar actions at runtime. though. Message Region (not shown in the above screenshot) This area (above the roadmap) is only visible if at least one message has been generated by the system. Collapsed In a collapsed stacked panel all UIBBs are collapsed. Note that it is possible for a guided activity to consist of only one step. or the toolbar buttons. displays all relevant information that more narrowly specifies the activity. There is. Page Toolbar The order and naming convention for the standard buttons are determined by the FPM framework. Roadmap This area displays an interactive figure. A guided activity is divided into a series of logical steps. In this case. You can use this floorplan to model an application interface that guides the user through an activity step-by-step.2. The content is provided by individual UI building blocks (UIBBs). All rights reserved. and all of which represent tasks and subtasks of an activity. their property Collapsed is set to TRUE . When the user completes the last step in the activity and presses the Next button (or what the developer of the application has defined the Final Action step to be). It is divided into the following elements: Content Area This area provides information that can be edited by the user. and the roadmap disappears.2 Floorplan for Guided Activity (GAF) A design template that dictates the structure and behavior of a user interface of a guided activity. the confirmation screen appears. this UIBB becomes the active UIBB. usually. Design-Time Structure (FLUID) View the design-time structure of a GAF configuration with the FPM configuration editor. If the stacked panel is expanded. The last step of a guided activity is usually a confirmation screen. this is not displayed in the roadmap. exactly one UIBB in the stacked panel with the property Default In Stack set to TRUE . In the screenshot above. each of which can be broken down further into substeps. followed by a confirmation step. The user navigates through the roadmap by clicking the steps. Information Area (not shown in the above screenshot) This optional area (below the page title). Runtime Structure The figure below shows the runtime UI of an application based on the GAF floorplan: This floorplan contains a series of screens associated with the different steps of an activity. PUBLIC © 2014 SAP SE or an SAP affiliate company. one main activity. FLUID. depicting the individual steps. The activity is one that is generally complex.Stack is set to TRUE . and substeps of the activity. 1. formerly known as the Extended Identification Region . the system displays just a single step in the roadmap. The content of the screens is determined by the business object the floorplan is based on. In FLUID. The floorplan has the following schematic structure: Page Title (formerly. the Identification Region (IDR)) The system displays the title and step of the current activity in this area. Page 7 of 16 . the Guided Activity Schema panel displays the following: Steps Each numbered step in a roadmap corresponds to one of the following types of steps displayed in the Guided Activity Schema panel in FLUID: Main Step Each main step represents one roadmap step. the content area contains a Form component. and. and not carried out by the user on a regular basis. that is. or by the task that the user carries out with that business object. IDR To make changes to the page title and information area. and the related tasks a user must perform. Note If the OIF configuration has been defined with only one main layer with only one sub-layer. displays all relevant information that more narrowly specifies the activity. an employee. and change the attributes and associations of business objects (for example. the Object Instance Schema panel displays the following: Main Views and Subviews Each main view or subview in the application configuration at runtime corresponds to one of the following types of views displayed in the Object Instance Schema panel: Main View Each Main View in the hierarchy represents one main view tab at runtime. represents a breaking-down of a main activity into smaller activities. All rights reserved. They are implemented with the Web Dynpro ABAP HorizontalContextualPatternControl control. Navigation to a confirmation screen is technically supported by the floorplan. the Identification Region (IDR)) The system displays the title and step of the current activity in this area. Information Area This optional area. Content Area This area provides information that can be edited by the user. and. whose content is determined by a defined business object. Related Information Initial Screen PUBLIC © 2014 SAP SE or an SAP affiliate company. you can characterize each step. it has been superseded by the Overview Page Floorplan (OVP) as it does not satisfy current UI guidelines. choose the Configure IDR button in the Object Instance Schema . and visually different from TabStripControl and cannot be used outside of this navigation region of an OIF. Tabs are used for switching between different OIF views and subviews. Design-Time Structure (FLUID) View the design-time structure of an OIF configuration with the FPM configuration editor. An OIF configuration may also contain an Initial Screen and/or Confirmation Screen . technically. the tabs and sub-tabs are hidden at runtime. The content is provided by individual UI building blocks (UIBBs). IDR To make changes to the page title and information area. or a purchase order). you can characterize each view.3 Floorplan for Object Instances (OIF) A design template that dictates the structure and behavior of a user interface for processing a business object instance. Subview A Subview in the hierarchy represents a view tab that appears under a main view tab. Using the fields inside the Attributes panel. Like a main view. This is conceptually. This floorplan has the following schematic structure: Page Title (formerly. FLUID automatically provides this. formerly known as the Extended Identification Region . Runtime Structure An application configuration based on an OIF type floorplan typically shows multiple view tabs. A GAF configuration may also contain an Initial Screen and/or Confirmation Screen . FLUID. It is the UIBBs that provide the content in a step. Main steps and substeps are available on a Main Steps type of page. You can use this floorplan to model an application interface that allows the user to create. and an FPM application must have at least one UIBB for each view. display. subviews must have at least one UIBB. Page 8 of 16 . Contextual Navigation Region (CNR) This area consists of view and subview tabs. and an FPM application must have at least one UIBB for each step. Each Main View must contain at least one subview (which are only visible at runtime if there is more than one). Related Information Initial Screen Confirmation Screen Identification Region (IDR) of GAF and OIF Applications 1. but you can add your own predefined UIBBs. It is the UIBBs that provide the content in a view. Note Although the OIF floorplan is still in use. but you can add your own predefined UIBBs. and links to more detailed information. Using the fields inside the Attributes panel. Page Toolbar The toolbar contains action buttons and navigation options.2. Main views and subviews are available on a Main Screens type of page. In FLUID. choose the Configure IDR button in the Guided Activity Schema . Message Region This area is only visible if at least one message has been generated by the system. delete.Substep A substep is a step that appears between two main steps. FLUID automatically provides this. An OIF configuration may also contain an Initial Screen and/or Confirmation Screen . Related Information Interface: IF_FPM_UI_BUILDING_BLOCK Generic User Interface Building Blocks (GUIBBs) Reuse User Interface Building Blocks (RUIBBs) 1. checks are to be performed continually (as long as they are not too performance-intensive). Performs the actual event processing For this. The methods of this interface are described in the following table: Table 1: Methods of Interface IF_FPM_UI_BUILDING_BLOCK Method Name FLUSH Description The first method called after the FPM event loop has been started. For example. the UIBB completes the following tasks: Checks for local consistency (validation. However. UIBBs can be divided into the following categories: Freestyle UIBBs These are UIBBs that are created by the external application. this does not exempt the application from performing a complete check (including performance-critical checks) before saving. when switching from one view to another view in an OIF application.1 Interface: IF_FPM_UI_BUILDING_BLOCK This Web Dynpro interface ensures that a Web Dynpro application and its UIBBs can take part in the FPM Event Loop. Normally. For quick activities. Depending on the action the user takes in the dialog box. refer to Triggering a Data Loss Dialog Box. this data transport is done automatically using Web Dynpro context mapping. This interface ensures that the Web Dynpro application can take part in the FPM Event Loop. the current event can be identified through the attributes MV_EVENT_ID and MO_EVENT_DATA of the event instance io_event that is passed on. the UIBB must transport all modified data from the views to other components that the UIBB wants to communicate with later on. FPM has limited control over the layout and format of the content displayed by these building blocks.2. and ensure that screens are SAP UI-guideline compliant. Use You can use this floorplan to model an application interface allowing the user to create. Therefore. missing data. All rights reserved. A typical implementation of PROCESS_EVENT is shown below: PUBLIC © 2014 SAP SE or an SAP affiliate company.Confirmation Screen Identification Region (IDR) of GAF and OIF Applications Floorplan for the Overview Page (OVP) 1. In accordance with UX guidelines. Page 9 of 16 . display. FPM_OIF_COMPONENT with only one main view and one subview available. the UIBB requests that the subsequent event processing is stopped. A quick activity is realized at design time by using the Object Instance Floorplan (OIF) component. More Information Floorplan for Object Instances (OIF) 1.4 Floorplan for Quick Activity (QAF) Definition A design template that dictates the structure and behavior of a user interface of a quick activity. From an FPM perspective. Generic user interface building blocks (GUIBBs) These are UIBBs that are provided by the FPM framework itself. only the fields of a business object are shown that generally suffice for creating an object instance. the exporting parameter EV_RETURN must be filled with either IF_FPM_CONSTANTS~GC_EVENT_RESULT-OK or IF_FPM_CONSTANTS~GC_EVENT_RESULT-FAILED . data in a table or form. for example. the view (UIBB) which is moved away from must check for local consistency. This must be handled in the method IF_FPM_TRANSACTION_CHECK_BEFORE_SAVE . They cannot be configured by the FPM framework. In order that FPM recognizes a UIBB.3 User Interface Building Blocks (UIBBs) UIBBs are used to display the content on your UI. GUIBBs ensure a consistent look and feel for the UI. NEEDS_CONFIRMATION In this method. For more details. only create a specific implementation of this method if you are not using this automatic mechanism. In this method. Depending on whether the event is processed successfully or not. the event loop is continued or canceled.3. PROCESS_EVENT In this method. and asks the user for confirmation by way of a dialog box. UIBBs are the interface views of a Web Dynpro ABAP component (the Web Dynpro windows). delete. and change the attributes and associations of business objects. the Web Dynpro component that provides the UIBB must implement the IF_FPM_UI_BUILDING_BLOCK Web Dynpro interface. and so on) The local check is needed to inform the user of potential input errors as soon as possible. and thus. the FPM framework indicates the presence of such GUIBBs at design-time in the Message Area of FLUID. the application (at design time) defines the data to be displayed along with a configuration. 1. to be displayed. The event might fail if the UIBB containing the details contains unsaved data for the previously-selected table row. They make it possible to improve the uniformity of the user-specific views. but the event processing failed due to a problem in another UIBB. For example. spacing. PROCESS_BEFORE_OUTPUT This is the last method to be called on the UIBB. The parameter IV_REVERT indicates this situation. the actual event processing must also be reverted.2 Generic User Interface Building Blocks (GUIBBs) The FPM framework supplies you with generic UI building blocks (GUIBBs) for displaying the content in your applications. The feeder class contains the business logic behind an application. FLUID. specified by the feeder class. You can edit a statically-created GUIBB using the FPM configuration editor.3. GUIBBs take care of the UI layout. In the feeder class. the business logic is contained in the feeder class. There is a complete separation of the UI and the business logic.2. WHEN XYZ Handle event and fill EV_RETURN accordingly with a value from IF_FPM_CONSTANTS~GC_EVENT_RESULT ENDCASE. GUIBBs are fully integrated into the FPM framework. the event processing can be deferred by returning EV_RETURN = IF_FPM_CONSTANTS~GC_EVENT_RESULT-DEFER. asking for further data in a dialog box). the lead selection must be reverted to the original table row too. GUIBBs can also be created dynamically at runtime. Page 10 of 16 . If the event processing requires further user interaction (for example. However. GUIBB or Freestyle UIBB? There are a number of reasons why using a GUIBB to display your content is preferable to using a freestyle UIBB: GUIBBs are SAP UI guideline-conforming templates for displaying content. this is done automatically using the configuration provided and with the data. If the PROCESS_EVENT method of the current UIBB has been processed successfully. Amongst other things.IF io_event->mv_event_is_validating = ABAP_TRUE. Feeder class implementations are based on a predefined interface definition (supplied by FPM). and provide an application with a harmonized look and feel.3. Which GUIBB to Use? FPM covers most content display requirements by providing the GUIBBs outlined in the table below: Purpose Suitable GUIBB Display data in a list or table format List ATS Component List ATS with Integrated Data Access (IDA) Hierarchical List (Tree) Component List Component Display data in a form format Form GL2 Component Form Repeater Component Form Component Display data as a search component Search Component Display data in other formats Analytics Component Chart Component Launchpad Component Personal Object Worklist (POWL) Component Visual Business Component Organise the layout of other GUIBBs Composite Component Tabbed Component More Information Feeder Class 1. let us say that selecting an option in a lead field in a table triggers the display of the details of this field in a new row in another UIBB. All rights reserved. providing all necessary methods and corresponding signatures PUBLIC © 2014 SAP SE or an SAP affiliate company. and certain product standards such as accessibility. the UIBB must ensure that its UI reverts to the state before the user interaction occurred. The data to be displayed is read from the model. In this case. GUIBBs are generic configurations based on feeder classes. Do local checks and report messages if needed ENDIF CASE io_event->mv_event_id.1 Feeder Class A feeder class provides a link between the application and the generic user interface building block (GUIBB). AFTER_FAILED_EVENT This method is called by FPM if an event could not be processed successfully. GUIBBs provide you with a code-free configuration of the UI. As the detail form still contains the details of the original table row (after the failed event). The concrete display of the data on the UI is only determined by the GUIBB at runtime. to standardize the communication between the application and the GUIBB. The required IF_FPM_RUIBB marker interface is implemented by the attachment 'wrapper' component FPM_ATTACHMENT_WRAPPER. edit and delete existing ones. You can also edit where attachments are stored: open FLUID for the attachment wrapper component to display the Storage Type field. Structure An attachment component is displayed in tabular format at runtime with each row representing a separate attachment or link. The exact structure of the attachment component at runtime is determined by the feeder class of the list component within the attachment component. and corresponding field dependencies The (optional) action definition based on meta data Action/event handling. Page 11 of 16 . it is the parameter list that is different for each interface. All rights reserved. a complete component offering common business logic and a user interface to go with it.3.3. the fields that are available for use in the configuration). you can download new attachments and links. an attachment component is a list component embedded in an attachment wrapper component. This communication embraces the following: Application definition (for example.3. Integration You configure this component using the FPM configuration editor.3 Reuse User Interface Building Blocks (RUIBBs) Definition A Generic UIBB (GUIBB) is a pure UI pattern that does not support any business functionality. GET_DATA Note Even if you are not using a particular method in the feeder class interface. and data forwarding to the underlying application model A feeder class is a class that implements one of the following ABAP interfaces: IF_FPM_GUIBB_FORM (for all Form components) IF_FPM_GUIBB_FORM_REPEATER (for Form Repeater components) IF_FPM_GUIBB_LIST (for all List components) IF_FPM_GUIBB_SEARCH (for Search components) IF_FPM_GUIBB_TREE (for Hierarchical List components) IF_FPM_GUIBB_LAUNCHPAD (for Launchpad components) Each interface above contains the same set of methods. More Information List Component (List ATS) 1. Feeder class settings can be accessed in the FPM configuration editor. and supplies the component at runtime with data from the application using the GET_DATA method. and their technical aspects) Default layout information. and group attachments and links.2 Notes Component PUBLIC © 2014 SAP SE or an SAP affiliate company. FLUID.3. The information displayed at runtime is determined by the feeder class attached to the list component configuration. sort. The following methods must always be implemented by the application (to provide the data at runtime): GET_DEFINITION Defines the field catalog of the component (that is. FPM provides the following RUIBB components: Attachment Component Notes Component More Information Generic User Interface Building Block (GUIBB) 1. If you need to configure the data displayed in an attachment component. Technically. must implement. more or less. At runtime. 1. you therefore configure the list component configuration within it. filter. Floorplan Manager (FPM) provides the marker interface IF_FPM_RUIBB. see the General Settings panel of the individual GUIBB component. However. the business functionality is provided in the feeder class by the application.3. structure or table definition. implement it as an empty method to avoid a system dump. FLUID. An Attachment Component is an example of a Reuse User Interface Building Block (RUIBB). a Reuse UIBB (RUIBB) is. data definition.1 Attachment Component Definition A component used specifically for the handling of attachments or links in an application. which all WD components acting as RUIBBs. does not perform specific actions for this event. the Web Dynpro action must be transferred to an FPM event.1. the FPM handles this itself. the FPM offers an additional method RAISE_EVENT_BY_ID. The required IF_FPM_RUIBB marker interface is implemented by the notes 'wrapper' component FPM_NOTES_WRAPPER. these standard events are handled generically by the FPM. delete. if you need to configure the note component. The following code provides an example of triggering an application-specific event (including event parameters): data: lo_fpm type ref to if_fpm. Each FPM event is represented at runtime by an instance of the class CL_FPM_EVENT . 1. However. and in the correct sequence too.3. in that all involved components participate in the event loop in the same way as with FPM standard events (see Reacting to Framework Events section). When an event requires no additional parameters. Within the FPM event loop. you can create. Raise the event by calling the method IF_FPM~RAISE_EVENT and passing the instance of CL_FPM_EVENT . You can also edit where notes are stored: open FLUID for the notes wrapper component to display the Storage Type field. there is no need for the application to take care of this. When an event occurs. PUBLIC © 2014 SAP SE or an SAP affiliate company. there are constants available in the IF_FPM_CONSTANTS interface. Integration You configure this component using the FPM configuration editor.3.2 Notes Component Definition A component used specifically for the handling of notes in an application. and sort notes.1 Raising Standard FPM Events In a floorplan-based application.4 FPM Event Loop An event loop is triggered in an application by an event. In Web Dynpro ABAP programming. If the FPM event results in another screen assembly (for example. Create an instance of CL_FPM_EVENT with the appropriate attributes. navigation to another step in a GAF application). a user interaction is reflected by a Web Dynpro action. In this case. such as a mouse-click. Therefore. Page 12 of 16 . you configure the list component configuration within it. there are scenarios where a standard event needs to be triggered from within an application-specific UIBB. optional parameters) which is needed to execute the event. do not enter code after the call to RAISE_EVENT[_BY_ID] . lo_event type ref to cl_fpm_event. a notes component is a list component embedded in a notes wrapper component. Furthermore. 1.2 Triggering the FPM Event Loop Procedure 1. the Event Loop ensures that the event is appropriately handled by ensuring that all relevant methods are triggered. The information displayed at runtime is determined by the feeder class attached to the list component configuration. However.4. For all the standard event IDs. all involved components can participate in the processing of the event.3 Triggering Application-Specific Events To raise an application-specific event. for example by-passing the Initial Screen if all necessary start-up parameters have been provided as URL parameters. follow the same rules as described in Triggering the Event Loop section. other than the event ID. since it does not know the semantics of the event. The exact structure of the notes component at runtime is determined by the feeder class of the list component within the note component. This class encapsulates all the information (including the ID and additional. For these interactions.4. If a user interaction should affect not only a local component but other components in the application too. 2. FLUID. A Notes Component is an example of a Reuse User Interface Building Block (RUIBB). raise the FPM event as detailed in the sample code below: data lo_fpm type ref to if_fpm lo_fpm = cl_fpm_factory=>get_instance( ) lo_fpm->raise_event_by_id( IF_FPM_CONSTANTS=>GC_EVENT-LEAVE_INITIAL_SCREEN ) Since it is unknown whether the event can be executed successfully or not at the point the event is raised. This makes Step 1 above obsolete. most events are triggered when a user chooses the Next or Previous buttons (in a GAF instance) or when switching from one page or view to another (in OVP or OIF instances). Technically. At runtime. edit.4. 1. Structure A notes component is displayed in tabular format at runtime with each row representing a separate note. All rights reserved. This FPM event then passes through an FPM event loop (or phase model) which is integrated into the Web Dynpro phase model. the processing of the event is identical. 1. The only difference is that the FPM. the FPM automatically initiates the FPM event loop. the application must inform the FPM framework by calling the following: cl_wd_notification_service=>update_event_status( exporting event_id = iv_notification_id "The Notification ID returned by IF_FPM~REGISTER_ASYNCHRONOUS_EVENT event_status = cl_wd_notification_service=>c_status_done).4.5 Interaction with Web Dynpro Phase Model The FPM event loop is integrated into the Web Dynpro phase model.create object lo_event exporting iv_event_id = 'DELETE_AIRPORT'.4 Asynchronous Callback With Web Dynpro's notification service.4. To use this service. whilst the process is running in the background. 1. 1. 2. the UI remains free and the user can continue to work. All rights reserved. Call IF_FPM~REGISTER_ASYNCHRONOUS_EVENT . The service is wrapped by FPM so that it can be used without the need for a freestyle UIBB. The following Web Dynpro methods are the most important ones in respect of FPM. lo_event->MO_EVENT_DATA->set_value( iv_key = 'AIRPORT_ID' iv_value = lv_airport_id). FPM then triggers the FPM event provided in the first step automatically. When the process is finished.6 Key Web Dynpro Methods used in FPM There are Web Dynpro methods that are used frequently in the FPM framework. Page 13 of 16 . lo_fpm = cl_fpm_factory=>get_instance( ). as the following figure shows: Figure 1: FPM Event Loop 1. This method returns a Notification ID . it is possible to start a long-running process from the UI in an asynchronous mode. and pass the FPM event to the method which shall be triggered after the asynchronous process is finished. the application must do the following: 1. Table 1: PUBLIC © 2014 SAP SE or an SAP affiliate company. lo_fpm->raise_event( io_event = lo_event ). The user receives notification as soon as the process is completed.4. 1.4. for example check that all mandatory fields are filled. if the Web Dynpro interface IF_FPM_SHARED_DATA is also required. DOBEFOREACTION A standard Web Dynpro method that is called by the Web Dynpro runtime on all visible UIBBs when the user triggers a round trip. you must return the pre-defined instance of the class CL_FPM_CONFIRMATION_REQUEST as shown in the following code-block: METHOD needs_confirmation IF … eo_confirmation_request = cl_fpm_confirmation_request=>go_data_loss ENDIFENDMETHOD To display other confirmation dialog boxes. 1. The following Web Dynpro interfaces belong to this category: IF_FPM_UI_BUILDING_BLOCK IF_FPM_TRANSACTION.Table 1: Method Description A standard Web Dynpro method that is called only once in the lifetime of a Web DOINIT Dynpro component by the Web Dynpro runtime. The corresponding Web Dynpro component has only one instance which participates at all FPM event loops that happen during the application’s lifetime. Page 14 of 16 . Action handler ( ONACTION… ) The registered Web Dynpro action handler is called. you can handle the action locally in your UIBB.8 Triggering a Data-Loss Dialog Box in the FPM Event Loop Each UIBB can request a data-loss dialog box during the FPM event loop. IF_FPM_WORK_PROTECTION IF_FPM_RESOURCE_MANAGER Category II Only one Web Dynpro component implements this Web Dynpro interface. Use standard Web Dynpro programming. Resuming the Event Once the required user input has been obtained. The sample code below shows how this might look: DATA lo_fpm TYPE REF TO if_fpm.4.7 Different Categories of Web Dynpro Interfaces With regard to the behavior of instantiating Web Dynpro components and their participation within the FPM event loop. To do this. Those which do. they must be implemented by the same Web Dynpro component. All rights reserved. for example selection of another radio-button leads to different enabled/disabled settings of other controls on the same view. Triggering the Dialog Box To do this. the Web Dynpro interfaces provided by the FPM can be divided into the following categories: Category I More than one Web Dynpro component implements this Web Dynpro interface. This method is used to initialize your component. the frozen FPM event is continued (either receiving the result OK or FAILED). For all actions which may affect other UIBBs. generic validations must be handled in this method. The following figure summarizes the behavior described above: PUBLIC © 2014 SAP SE or an SAP affiliate company. and the instances may only participate in a part of the FPM event loop during the application’s lifetime. After the event is resumed. According to Web Dynpro programming guidelines. lo_fpm = cl_fpm_factory=>get_instance( ). call the FPM method RESUME_EVENT_PROCESSING within the action handler methods for the buttons of the dialog box. it is recommended to implement it in that same Web Dynpro component too. create your own instance of the class CL_FPM_CONFIRMATION_REQUEST and add your own application-specific text. You then have the following options: If the user interaction does not affect other UIBBs. raise an FPM event. may have more than one instance. the remaining UIBBs are processed (if there is more than one UIBB). The following Web Dynpro interfaces belong to this category: IF_FPM_APP_CONTROLLER IF_FPM_SHARED_DATA IF_FPM_OIF_CONF_EXIT (and IF_FPM_GAF_CONF_EXIT and IF_FPM_OVP_CONF_EXIT ) Note When using the interfaces IF_FPM_APP_CONTROLLER and IF_FPM_OIF_CONF_EXIT (or IF_FPM_GAF_CONF_EXIT or IF_FPM_OVP_CONF_EXIT ) together. Furthermore. lo_fpm->resume_event_processing( if_fpm_constants=>gc_event_result-ok ). and there is no need for FPM features such as data-loss dialog boxes. for example initialize attributes and create helper classes). These configurations can be adjusted or changed at any time. and through a number of different people: Configuration Level (Developer) PUBLIC © 2014 SAP SE or an SAP affiliate company. you can adapt an FPM application to your needs on a number of different levels. All rights reserved. This framework is illustrated in the figure below: As illustrated above. and the configurations of the embedded components (UIBBs). Floorplan Manager uses the FPM/Web Dynpro ABAP Adjustment Concept for making such changes. Page 15 of 16 .Figure 1: Phase Model for Triggering a Data-Loss Dialog Box and Resumption of Event 1.5 FPM/Web Dynpro ABAP Adjustment Concept The concrete layout of an FPM application is determined by the application configuration. programmed. Customizing Level (Administrator) Applications with their basis configuration can be adapted to enterprise-specific requirements at the customer site on this level. search for Web Dynpro ABAP Configuration Framework in the SAP Help Portal.. These kinds of adjustments usually occur on the client-level and for all users. All rights reserved. PUBLIC © 2014 SAP SE or an SAP affiliate company. For more information. The individual layers of this concept are explained in more detail in the relevant sections of this documentation. and given a basis configuration by developers. This is done without modification to the underlying configuration. Various components used in the application are created.The fundamental modeling of an FPM application occurs on the this level. Personalization Level (User) Applications can be changed by individual users in various ways to fit their personal needs on this level. This is done without modification to the underlying configuration. Page 16 of 16 .
Copyright © 2024 DOKUMEN.SITE Inc.