Creating Own Overview Lists

Problem

The Overview lists provided by default PPP are not sufficient for your needs and you want to create your own Overview list.

Environment

PPP Overview Enhancements

Prerequisites

You have created a Class in your own Namespace that is used as BAdI Implementation for the BAdI Definition /STX/SOL_PPP_BA_OVERVIEW in the Enhancement Spot /STX/SOL_PPP_ES_OVERVIEW.
The created class needs to include the interface /STX/SOL_PPP_IF_OVERVIEW_BADI.

Solution

Custom Overview Name:

Before starting the implementation of your own custom overview, you should decide on a name. This name will be reused in various places in the implementation process and has to comply with all of the following guidelines. The chosen name must:

  • be unique across all other existing custom overviews
  • not contain any special characters like ("/", “$”, “=”, “.”, etc.). However “_” are allowed.
  • be completely upper case
  • have a maximum length of 31 characters

In example: CUSTOM_OVERVIEW_EXAMPLE_WITH_31
Further below this will be mentioned as “Overview Name”.

Metadata Creation:

Every Custom Overview needs to have its own EntityType. This generation is done by PPP and can be triggered by implementing GET_CUSTOM_OVERVIEW_STRUCTURES(). Inside your implementation you can define the metadata to be generated by filling the returning parameter OVERVIEW_STRUCTURES. For each line in this table an EntityType will be created. Each line has to contain the following technical required information per component:

  1. DDIC_STRUCTURE: Supply DDIC Structure Name

    • A component named GUID must be included
  2. OVERVIEW_KEY: The earlier specified “Overview Name”

  3. KEY_PROPERTIES: A list of component names that will be created as key properties in the EntityType.

    • At least GUID must be provided
    • Every supplied component name must be also present in the DDIC Structure given in Step 1.

Furthermore you can add custom annotation in the given method CREATE_CUSTOM_ANNOTATION(). This method will be called during the process of metadata generation from /STX/SOL_PPP_CL_MPC_EXT for each EntityType to be created for Custom Overviews. For this you will receive the two importing parameters VOCAB_ANNO_MODEL and ENTITY_TYPE. ENTITY_TYPE will always refer to the EntityType created in the current iteration.

Fiori Tile Creation:

The Fiori Tile can be created via transaction /UI2/FLPD_CUST. Here select the Template “App Launcher - Static” in the desired Catalog. Provide a title and the following Navigation parameters:

  • Semantic Object: _STX_SOL_PPP
  • Action: track
  1. Parameters: &/CustomOverview/YOUROVERVIEWNAME → “YOUROVERVIEWNAME” has to be replaced with the Overview name chosen by you.

Tab Customizing:

Tabs can be customized as described in Customizing Overview Lists. Note that for the BRF+ Input Column the chosen “Overview Name” has to be used again!

Custom Overview data retrieval:

To get any entries inside your custom overview, the BAdI method GET_CUSTOM_OVERVIEW_ENTRIES() has to implemented. Via the both importing parameters TAB_KEY and OVERVIEW_KEY you can precisely differentiate from which of your custom overviews and which tab the data request was triggered. You can fill the exporting parameter ENTIES accordingly. Make sure that the table provided for ENTRIES is based on the same DDIC structure as the Metadata!

Provide Overview Title:

To provide a title for your Custom Overview, the BAdI method GET_CUSTOM_OVERVIEW_INFO() needs to implemented. As importing parameter OVERVIEW_KEY you will receive the your chosen “Overview Name” in case there are multiple Custom Overviews and they need to be differentiated.
In the returning structure OVERVIEW_INFO make sure to provide the following info per component:

  • OVERVIEW_KEY → set this to the same value as the importing parameter
  • TITLE → the title to be displayed in the application with a maximum length of 255 characters

Mass calculated fields:

In case you have implemented custom calculated fields for any overview entity (e.g. Project) you should consider implementing the BAdI method PRELOAD_RELATED_DATA()

Here you are given a set of entity GUIDs of the current overview entity which you can use to preload data into a buffer that is later being accessed within your custom calculated field.

The importing parameter RELEVANT_FIELDS will give you a list of fields that are needed to properly determine the overviews output. In case it is initial or doesn’t contain a custom calculated field, nothing has to be done in the BAdI implementation.

For maximum performance, use hashed tables with unique keys for the internal buffer tables.

Example Implementation:

An example implementation /STX/SOL_PPP_CUST_OVERVIEW_ENH with the implementing class /STX/SOL_PPP_CL_CUSTOM_OV_DEMO for the BAdI has been provided by PPP.
You can either start a complete new implementation or create one by copying the Example Class.

See Also

Keywords