ABAP can be developed in the classic SAP GUI tools or in ADT, the Eclipse-based environment. Which you use depends on the system and on what you are building.
Two environments
| Aspect | SAP GUI (SE80) | ADT (Eclipse) |
|---|---|---|
| Runs in | SAP GUI | An Eclipse plug-in |
| Editor | The ABAP editor | A modern code editor |
| Completion and refactoring | Limited | Extensive |
| Dynpro screen development | Possible | Not possible |
| CDS view development | Not possible | Required |
| Working across systems | Awkward | Easy |
| Targets | ECC, S/4HANA on premise | S/4HANA, BTP, Cloud |
Newer technologies โ CDS views, RAP, ABAP Cloud โ exist only in ADT, while classic Dynpro screens exist only in the GUI, so most teams use both.
Key transactions
| Code | Purpose |
|---|---|
| SE38 | ABAP editor |
| SE80 | Object navigator |
| SE11 | Data Dictionary |
| SE37 | Function builder |
| SE24 | Class builder |
| SE41 | Menu painter |
| SE51 | Screen painter |
| SE93 | Transaction code maintenance |
| SE09 / SE10 | Transport organiser |
| SE16N | Table data display |
Packages
Every development object belongs to a package. A package is not merely a folder: it links to a transport layer, which determines where its objects are transported.
| Package | Meaning |
|---|---|
| $TMP | Local object; never transported; for scratch work |
| Z* / Y* | Customer packages; transportable |
| Anything else | SAP standard packages |
Transports
| Kind | Content |
|---|---|
| Workbench request | Programs, table definitions, development objects |
| Customising request | IMG configuration; client dependent |
Requests contain tasks, one per developer. Each developer releases their task, and only when all tasks are released can the request be released.
Namespaces
Customer objects begin with Z or Y. SAP never ships objects with those prefixes, so following the convention guarantees no collision at upgrade.
Larger organisations usually add a second level โ ZFI_, ZMM_ by module, or ZR_ for reports and ZI_ for interfaces.