Overview
For frequently required tasks in application development, the S10 Framework offers the option of automatic generation of application parts. This not only saves development time but also ensures a uniform structure.

The following generation options are available: 

Additionally, these tools are available:  

The entry point is transaction /S10/UTIL:

In all cases, a structure from the SAP Data Dictionary serves as the basis (table, view or CDS view).

Tip: If you need data from more than one table, it is practical to first use transaction SE11 to search for or create a database view that contains the required fields.

The individual generations are independent of each other. For example, to generate a list, it is not necessary to generate an ABAP class first; the generation of the list already contains the generation of all classes required for this.

 

1. Generation of an ABAP class

You specify the database table to which the class refers, the language key for the generated comments in the coding, and the ABAP include name. Local classes are always generated, which you can import yourself later in the SE24 class library if a global class is required.

For the include name, it is best to work with the SAP naming conventions for your own ABAP programs, i.e. starting with Y or Z or with your own namespace /xxx/.

Example:

We generate a class from the SAP table "MARA":

Selection of fields as class attributes

Generated ABAP class

 

In addition to the actual class attributes, some constants are generated based on the data dictionary information:

  • "dbtabname" names the database table. This information is required for the statements s10databaseread() and s10databaseselect().

  • "unit_ ..." This assigns another attribute containing a unit of measure or a currency to individual attributes. Input and output are then automatically carried out with the appropriate number of decimal places for the unit of measure or currency, e.g. with piece "PC" without decimal places.

 

2. Generation of a list

Here, a ready-to-run list application is generated, i.e. both the ABAP classes and the HTML files. You can test the application locally, adapt it further and then use it as a list display within a more comprehensive application if required.

As with the generation of a single ABAP class, you specify the database table to which the list refers, the language key and the ABAP include name for generating the class. Local classes are always generated, which you can import later in the SE24 class library if a global class is required. All HTML files are generated in a local directory on your PC so that you can test locally and adapt further. Later you can import the files from your local directory into the SAP MIME Repository of the SAP development system with the SAP programme "BSP_UPDATE_MIMEREPOS". The system then asks for a development package and creates an SAP transport request that you can use to transport the files into the test and production systems.

For the name of the generated ABAP program, the table name is used and provided with a prefix. The system proposes "ZZS10_" as the prefix, which should be sufficient for testing. When transferring to a more comprehensive application later, then use your own namespace.

All configuration data of the list are stored as comments in the generated programme and read from it when called up again. If you delete the programme, the list configuration is also deleted.

Example of generating a list:

We generate a list of accounting documents from the SAP database view "VB_DEBI", which represents a join of the customer master record and the accounting document.

We have specified "F:\S10\VB_DEBI" as the local directory. It makes sense to choose the directory to match the configuration of the local test environment, so that you can test immediately without having to recopy.

When you click on "Start", the data dictionary information is read, for example field names, texts and field lengths, and displayed as a configuration table for the list. You can now tick the required fields, and then click "Enter" once so that the selected fields are displayed first in the table. Now configure the list as desired:

More about the individual options in a moment. Click on "Save and generate" to generate the ABAP programme and the HTML file, and click on "Test application" to test the generated application locally. The list is generated in such a way that it largely adapts to the width of the output medium:

Desktop format

 

Phone, landscape format

 

Phone  portrait format

In addition to the fields for data selection and the list itself, the display of details for the list line is also generated:

The following options are available for configuring the list:

  • List order
    Number 1,2,3,... to determine the order in the list
  • Width
    Width of the column in characters. It is suggested from the data dictionary. When the HTML files are generated, they are converted into pixels, which do not have to correspond exactly to the number of characters because of the proportional font.

    Using the "Suggest width" button you can select a width that covers most or all of the entries present in the database. 
  • Text
    If ticked, the text is also output. Precondition: A text table is specified for the field in the data dictionary.
  • Text width
    Text column width
  • Search order
    Number 1,2,3,... to determine the sequence when generating the field as selection criterion
  • Text
    If ticked, the search refers to the text ("contained in")
  • Dropdown
    If ticked, a dropdown box is generated for the selection. Prerequisite: A value table is stored for the field in the data dictionary. 
  • Range
    If ticked, the option to enter intervals and complex search conditions is given for the selection
  • Valuehelp
    If checked, the user can display a valuehelp for this field
  • Default
    The field is preset with the entered value
  • Hidden
    The field is displayed only hidden, i.e. not visible to the user, on the frontend.
    This can be useful for further processing of the data, e.g. to generate diagrams
  • Detail order
    Number 1,2,3,... to determine the order in which the field is generated in the detailed display (line selection).
  • Text
    Additional output of the text in the detail display. Precondition: A text table is specified for the field in the data dictionary.

 

 

3. Generation of a value help

A list display is generated here that also offers the option of selecting a line and placing the key value from the selected line in an input field. For easy testing, an HTML page with an input field is generated in which you can test the input help. The first key field of the table is returned in each case. If an input help is to set several key fields, you must adapt the programme yourself accordingly.

The options are identical to the configuration of the list display. The generated ABAP program receives the same name as when generating the list display plus an appended "_vh" for "valuehelp".

Example:

 

Access to the generation of an input help for the customer number, table KNA1

 

Configuration of the value help  

 

Generated test page

 

Value help, we select the second entry

 

The selected value is displayed in the input field

4. Generation of a transaction

This allows you to generate the basic framework of an S10 application that allows you to create, modify or display data depending on the selected transaction type. In principle, this works like generating a list. There is also the possibility to mark fields as input fields, so that the user can enter or change data. Saving must then be implemented in the generated placeholder-methods.

In many cases, SAP tables consist of a header table to which one or more entries in an item table are related, e.g. for orders (VBAK) with items (VBAP) or also quality notifications (QMEL) and associated actions (QMMA). The generation tool automatically recognizes the key relationships here when the corresponding table is specified and generates a suitable application in order to be able to maintain header data as well as item data.

Selection of fields for a quality notification 

Selection of the fields of the quality notification actions

 

Generated placeholder methods

The S10 generation tool automatically determines the data type of an input field and converts it to the corresponding type on the user interface, e.g. text input or date selection.

Maintaining the actions of a quality notification

 

5. Upgrade S10 Framework

Here, a local directory on the PC can be specified. The tool then analyzes all S10 applications in this directory regarding the version of the installed S10 Framework and compares it with the version present in the SAP system, more precisely, in the MIME Repository.

If there is a version discrepancy, the tool offers the option to perform an update. This is where the “Start Upgrade” button comes into play. Additionally, the “Upload/Download” function provides a link to an SAP application, allowing entire directories to be transferred from or to the MIME Repository.

Example of different versions

 

6. Enter License

Here, a license for the S10 Framework can be entered. When generating an application, this will then be included in the ABAP code.

 

7. Program Analysis

Usage
Consistency check of the components of an S10 application

Scope
The objects of the review are the ABAP program and the associated HTML files (views).

It checks whether the cross-references required by convention between the objects exist. If not, for example, if they are not yet implemented or due to typos, a log entry is made. Cross-references include, for example:

  • For an HTML page called in ABAP via SetScreen, a corresponding file must exist in a subdirectory
  • If an HTML file references ABAP variables, these variables must be declared in ABAP, or be globally known as DDIC objects.
  • For an HTML event that is to be handled in ABAP, a corresponding method must be declared there.

Selection

  • ABAP Program: The underlying ABAP program of the application with the corresponding classes
  • Local Directory: The local directory associated with the application, including the subdirectory CLASSES.
  • Language: For selecting the language-dependent subdirectory in the S10 application directory tree

Output
An ALV list of all detected anomalies

Within the output list, double-clicking a cell will display the following depending on the column:

  • Class: ABAP Program (Include)
  • HTML Page: HTML file where a problem exists
  • Description: Depending on the type of error: ABAP Program / S10 Directory / DDIC Object
  • Local File: HTML file or S10 Directory

Components: S10 Framework