Starting a Program Directly
To start a program directly, enter the program name in any of the program execution transactions and choose execute.

In the R/3 System, only programs with type 1 can be executed directly. You assign a type to a program (and hence also determine whether it can be executed directly) when you create it. Type 1 programs are called executable programs, because they can be started directly.
When you run an executable program (report), an invisible system program automatically calls processing blocks (event blocks, see
Event Blocks for Executable Programs (Reports)) in a pre-determined order. It also calls any selection screens and lists. The screens can then call further processing blocks themselves.The task of this system program is to provide a pre-defined program flow which starts with data input (selection screen), processes this data, and outputs the results (in a list) without the programmer having to define dialog screens. The system program also allows you to work with a logical database (see
Logical Databases). The flow of the system program (input selection, read data (logical database), process data, display result) is reporting-oriented.
This is why executable programs (type 1) in the R/3 System are often referred to as reports, and why running an executable program is often called reporting.
Since it is not compulsory to define event blocks, you can yourself determine the events to which your ABAP program should react. Furthermore, you can call your own screens or processing blocks at any time, leaving the prescribed program flow. You can use this, for example, to present data in a table on a dialog screen instead of in a list. The simplest executable program (report) contains only one processing block (START-OF-SELECTION).
No dialog has to take place when you run an executable program (report). You can fill the selection screen using a variant and output data directly to the spool system instead of to a list. This makes executable programs (reports) the means of background processing in the R/3 System.
It is appropriate to use executable programs (reports) when the flow of your program corresponds either wholly or in part to the pre-defined flow of the system program. If you want to use a logical database, you must use an executable program (report).