Skip to Content

Display/ Edit mode in the FPM OVP Floorplan:

According to the SAP UI guidelines there is an explicit display mode and an explicit edit mode for an overview page. The behavior of these modes should be the following:

Normally, an overview page is opened in display mode. This means all assignment blocks show their data display-only and there are no editable fields. The buttons Save and Cancel in the page toolbar are disabled. An Edit button in the assignment block title bar offers the possibility to switch the assignment block into the edit mode and hence, to change the data of this assignment block. An optional global Edit button in the page toolbar of the overview page changes all assignment blocks into edit mode. If one or several assignment blocks of the overview page are in edit mode, the Save and Cancel buttons in the page toolbar are enabled; the global Edit button in the page toolbar is disabled as well as the Edit button in those assignment block that are in edit mode. An assignment block that was switched to edit mode stays in this mode until the user clicks Save (saving all changes in all assignment blocks) or Cancel (discarding all changes in all assignment blocks) in the page toolbar. A save or cancel event sets all assignment blocks on the overview page back into display mode (if the overview page has a display mode).


OVP in Display Mode.png

    Figure 1: Overview Page (with central Edit button) in Display Mode

OVP in Edit Mode.png

    Figure 2: Overview Page (with central Edit button) in Edit Mode

In order to enable an explicit display/ edit mode in an overview page the FPM offers three possibilities:

  1. Via the parameter ‘Edit Mode’ in the ‘General Settings’ of the OVP floorplan configuration
  2. Via the application parameter FPM_EDIT_MODE
  3. Via the URL parameter FPM_EDIT_MODE

Alternative 1 has the lowest priority whereas alternative 3 has the highest. This means that the application parameter overrules the configuration setting whereas the URL parameter overrules both, the application parameter and the configuration setting. Currently, the following parameter values are supported:

  • ‘ ‘: No Mode Handling (default)
  • ‘E’: Edit
  • ‘R’: Read-Only

In the case of the value ‘ ‘ (No Mode Handling), which is the default setting, no special logic is processed by the FPM regarding display or edit mode. This means that the application behaves as before the display/edit mode feature has been introduced. There is no automatic enablement or disablement of Edit, Save, or Cancel buttons done by the FPM. The UIBBs do not receive information about their current edit mode state.

In the case of the value ‘R’ (Read-Only) the application starts at runtime displaying all UIBBs read-only whereas in the case of the value ‘E’ (Edit) the application starts at runtime displaying all UIBBs in edit mode; the latter is typically used for ‘create scenarios’. There is an automatic enablement or disablement of Edit, Save, or Cancel buttons done by the FPM. All GUIBBs receive information about their current edit mode state via the importing parameter IV_EDIT_MODE of method GET_DATA of the respective feeder interface. All free-style UIBB can access information about their current edit mode via method GET_UIBB_EDIT_MODE of the FPM runtime interface IF_FPM.

If the edit and display mode is used in an OVP application a local Edit button can be configured in the assignment block toolbar of any UIBB. This button must trigger the FPM event FPM_LOCAL_EDIT. If this button is pressed at runtime the UIBB is transferred into edit mode and is no longer read-only. In the global toolbar, Save, Cancel, and Edit buttons can be configured with the FPM events FPM_SAVE, FPM_CANCEL and FPM_EDIT, respectively. FPM_SAVE and FPM_CANCEL transfer the application globally into display mode, i.e. no UIBB stays in edit mode. FPM_EDIT transfers the application globally into edit mode i.e. all UIBBs are transferred into edit mode. In global edit mode, the global Edit button and all local Edit mode buttons are disabled whereas the global Save and Cancel buttons are enabled. In global display mode, the global Edit button and all local Edit mode buttons are enabled whereas the global Save and Cancel buttons are disabled. In local edit mode of an assignment block, the local Edit mode button of that assignment block is disabled and the global Edit, Save, and Cancel buttons are enabled.

Besides the Edit buttons there are also other buttons imaginable for a UIBB that should transfer the UIBB directly into the local edit mode. One example is an Add button for list GUIBBs. The functionality to trigger such an ‘implicit edit’ mode switch is supported in the following way:

  • In order to enable automatic switching of a GUIBB into the local edit mode when a button is pressed a new indicator IS_IMPLICIT_EDIT is available in structure FPMGB_S_ACTIONDEF which is used in the feeder method GET_DEFINITION for defining non-exposable or exposable feeder actions. Setting this indicator to ‘X’ for a feeder action will automatically switch the GUIBB to edit mode when the action is triggered.
  • In order to enable switching an application-specific UIBB into the local edit mode when pressing an  application-specific button two cases have to be distinguished: In the case of exposable actions the structure FPMGB_S_ACTIONDEF is used again for the action definition and therefore the indicator IS_IMPLICIT_EDIT is available; however, in the case of non-exposable actions, a new attribute can be set at the FPM event of the button in order to enforce switching to the edit mode. This attribute is defined in class CL_FPM_EVENT; its name is MV_IS_IMPLICIT_EDIT.

Important Remarks & Preconditions:

  • The display/ edit mode functionality of the FPM OVP Floorplan is available as of release NW 7.31.
  • In order to use the display/ edit mode in the FPM OVP Floorplan the UIBBs that are used in the OVP configuration must support the display/ edit mode, i.e. they need to react appropriately on their current display/ edit mode state.
To report this post you need to login first.

10 Comments

You must be Logged on to comment or reply to a post.

  1. Uwe Kunath

    Hi Jens, thank you for these insights. Is there any comparable concept in 7.02, besides using a singleton instance which provides information of the application’s Display/Edit-Mode state?

    (0) 
  2. Prateek Agarwal

    Hi Jens.. I am very new to FPM concept and i went through this document and found it very useful. Actually i just wanted to know, how can i make a  toolbar button in (component configuration ) also as read-only if that particular UIBB is read-only.  As i am having some UIBB’s which i want to make read-only to some users. I am able to do it but the delete button for that particular UIBB is not getting read-only. So please tell where i have to make the settings for this button to make it read-only as soon as UIBB becomes read-only.

    Thanks!!

    (0) 
  3. Matteo Montalto

    Hello Jens and greets for this useful blog post.

    I’m dealing with a specific requirement and would like to ask you for additional details. Shortly, I’d like to enable editing for some fields even though the WD application (SRM one, based on FPM_OIF) is in “display” mode.

    Tricky requirement indeed, as we’d like to get such a behaviour so that eventual modifications on these fields could be transferred directly @DB level without processing a newer version of the document (in fact, we don’t want to create a new version and neither a status update – we would associate a custom event which “reads” modified entries and provide to commit them at db on the current doc version).

    I tried to associate to a button the FPM_LOCAL_EDIT event in order to check whether specific UIBBs fields could be enabled for modification even if in general display mode. That wasn’t working, most probably as you told, our application is an OIF and not an OVP . Do you have any hints about any other approach to the task?

    (0) 
  4. Torsten Schubert

    Hi Jens,

    the automatic switch between display and edit mode is a nice feature.

    How can I override the enabling of the buttons? E.g. the application starts by default in display mode with edit button enabled, but the user has no authorizations to edit the data. The edit button must be greyed out then. All three standard buttons should be disabled in that case.

    How do I manage to get that?

    Kind regards

    Torsten

    (0) 
    1. Jens Ruths Post author

      Hi Torsten,

      the correct behavior from my perspective is that the Edit button stays enabled even though the end user has no authorization. If the end user presses the Edit button an error message should appear telling him that he has no authorization. If you disable the edit button right from the beginning the end-user would not know that he has no authorization. He would be confused and maybe wonder why there is an inactive Edit button.

      Another possibility is to set the Edit, Cancel, Save and “local” Edit buttons invisible via the OVP APIs IF_FPM_CNR_OVP or IF_FPM_OVP. In this way the end-user doesn’t get confused by inactive buttons.

      (0) 
      1. Gaurav Gautam

        Hi Jens,

        I am facing a typical issue with the custom tab added to PO Header – subview. When I am in client 110 where the custom webdypro was created it shows all the zfields in custom tab as active but when the same is viewed in client 120 ( both client are in DEV system ) all the fields in custom tab is appearing as greyed out in edit mode. What could be the reason? How can I switch between edit and display mode of the custom tab with respect to the PO overview screen mode.

        Thanks,

        Gaurav Gautam.

        (0) 
  5. Karsten Heth

    Hey Jens,

    very useful information. Is it possible to determine the global edit mode? Would be helpful in the application controller to decide if certain logic has to be done or not.

    Thanks,

    Karsten

    (0) 
    1. Jens Ruths Post author

      Hi Karsten,

      you can get the local edit mode of an UIBB by calling method IF_FPM->GET_UIBB_EDIT_MODE and passing the corresponding UIBB instance key to the method. However, if you just pass an empty UIBB instance key to that method you will get the global edit mode.

      Best regards,

      Jens

      (0) 

Leave a Reply