Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
Showing results for 
Search instead for 
Did you mean: 
Active Participant
The first OO design step is thinking of what actions are needed to create the software.

This step is not different from procedural designing. That makes sense, because no matter you use OO or procedural programming, the software must result in the same outcome. The difference between procedural and object oriented programming is in how it is programmed.

The specifications in the example are only intended as an example for these ABAP OO Design blog posts. Well-described specifications are the most important aspect for creating software. In the examples below, the specifications are described too briefly for real life specifications. The specifications lack detail such as field definitions, validations, form layout design, detailed logic, error handling and so on, but are detailed enough for OO design.

In the paragraphs below the example specifications are written to actions.

Example: Send Sales Order document by Email to Customer.


When the Sales Order is created and saved, automatically an Output message (NAST) is created and executed. This Output message will trigger the creation of the Sales Order document. The Sales Order will be added to an new email and will be sent to the customer.


  1. Creating an output message (NAST) during creation of the Sales Order.
    This is customizing, therefor no custom ABAP needed for this action.

  2. Create Print program which is needed for the Classic Output Message Framework (TNAPR/NAST).

  3. Read Sales Order Document Data.

  4. Create Sales Order Form (T:SFP - Adobe Forms)

  5. Create Sales Order Document, based on

    1. Sales Order Form (T:SFP - Adobe Forms)

    2. Sales Order Document Data

  6. Create and Send Email

    1. Add Sales Order Document as attachment

In the design step you might forget steps and that is not a problem. During optimization of the class diagram all classes will be looked at again.

In this case I forgot some sub steps for "Create and Send Email"

    1. Get Email content.
      This content is Sales order number, Customer name and Customer email address.)

Example: Create Starter Pack Sales Order by Incoming interface


A Fiori app is created to execute a Fast Sales Order Entry screen for ordering a free Starter pack product.

The Sales employee enters the customer name, address, email address. A Contract PDF file is generated and is signed by the customer.


The starting point is that the Starter Pack Sales Order app will be created in Fiori. The back end has to be developed in SAP S/4HANA.

  1. Receive Starter Pack Sales Order data from Fiori.

  2. Determine Starter Pack Material.

  3. Create Customer.

  4. Create Starter Pack Sales Order.

  5. Add Contract PDF file to the Sales Order.

Example: Add a Christmas Present material to Sales Orders by Batch program


There is a batch program needed to add a Christmas Present material to open Sales Orders which have a net value more than 50 euro. After adding it, a notification email will be sent to the customer.


  1. Batch program with selection screen with test run parameter.

  2. Select Sales Orders

    1. Which are open.

    2. Which have a net value more than 50 euro.

    3. If Sales Order has already Christmas Present material, then skip the Sales Order.

  3. Add Christmas Bonus material to Sales Order.

  4. Send notification email to customer.

  5. Write log to ABAP list.

  6. Write errors to Application log.


Up next will be the blog post about the Class Categories.
Labels in this area