Important concepts in the ABAP technology stack

‘(C) Brandeis Consulting’

Development environments and interfaces

SAP GUI

  • Old interface for everything:
  • Development
  • Application
  • Customizing
  • Transaction-based
  • Does not work with S/4HANA Cloud
  • Looked totally outdated even 20 years ago ;-)

Eclipse with ADT

ADT = ABAP Development Tools

  • New development environment
  • Some objects can only be created here:
  • CDS views
  • AMDP routines
  • RAP objects

Fiori apps

  • Application interfaces for S/4HANA
  • Browser-based
  • Role-based
  • Responsive design
  • Customizable and expandable
  • Start via the Fiori Launchpad
‘(C) Brandeis Consulting’

Multi-system landscape

Challenge

  • All changes to the system should be traceable
  • Testing should be done with real data
  • Upgrades should not cause technical errors
  • Corrections should still be able to be made during upgrade phases
  • User permissions on productive systems should be very limited.
‘(C) Brandeis Consulting’

Multi-system landscape

Concept

There are several system types. Typically, there are 3 systems, but sometimes 2 or 4 are possible:

  • Development system (DEV): This is where new applications are developed, changes are made, and testing is performed.
  • Quality assurance system (QAS): Used to test developments and changes under real conditions before they are transferred to the production system.
  • Production system (PRD): The live system in which the company's daily business processes are executed.

For very small customers, the QAS system is sometimes replaced by another client on the DEV system.

For large installations, there is sometimes another system on which the consistency of transports can be tested before importing them into PRD.

‘(C) Brandeis Consulting’

Transports

Challenges

  • Bringing corrections and new developments from DEV via QAS to PRD
  • Documenting system changes
  • Bringing consistent changes to PRD, e.g., larger features
  • Not always having to transfer everything to PRD, e.g., in the case of urgent corrections
‘(C) Brandeis Consulting’

Transports

Concept

  • So-called transports bundle changes
  • The transports consist of an object list
  • When development objects are changed, automatic change recording takes place. The developer can select a suitable transport request.
  • As soon as a development object is included in a transport in the object list, it is locked for other transports
  • Once all changes for a transport have been made, it can be released.
  • The following happens when a transport is released:
  • The transport files are generated from the objects' active status at that point in time
  • The objects are unlocked again, meaning they can end up in another transport
  • If necessary, the import into a subsequent system is triggered
‘(C) Brandeis Consulting’

Transports

Typical complications

  • Incomplete transports - Objects are missing in the target system or the objects are in an old state. Solution: another transport is created that contains the required objects.
  • Overtakers - A low-priority transport is released, e.g., a new feature. Since no one wanted to test it, it remains in QAS for the time being. Then a transport comes along that fixes a serious error. It contains the same objects as the first transport. The error is thus successfully fixed. However, after importing the original transport, the error reappears.

Basic rules

  • The order of release should correspond to the order of import in the PRD. Everything else must be thoroughly checked.
  • Completeness should always be checked again before release.
  • Testing should be carried out as quickly as possible in the QAS system.
‘(C) Brandeis Consulting’

Client concept

Challenge

One system for multiple business units in ERP

  • Data isolation
  • Sharing of resources
  • Clear separation of permissions and users
  • Low administrative effort
  • Flexibly scalable and expandable to include additional business units
‘(C) Brandeis Consulting’

Client concept

Solution

  • Each application and customizing table contains the key field Client
  • When logging on to the system, you log on to exactly one client
  • The data is automatically read only for this client. Cross-client access is (almost) impossible.
  • The data is also automatically filtered in SELECT queries
‘(C) Brandeis Consulting’

Authorizations (roles & authorization objects)

The authorization and role concept in an SAP system is central to security and the efficient management of access rights.

  1. Authorization objects: Consist of an activity and fields.

  2. Authorizations: Concrete manifestations of authorization objects. They define which activity a user is allowed to perform on a specific object.

  3. Roles: Collections of authorizations that are grouped together to enable specific work tasks. Roles simplify the management of authorizations.

  4. Simple roles: Contain authorizations for a specific area or process. They are geared toward specific tasks or functions.

  5. Collective roles: Bundle several simple roles. They are used to cover more complex areas of responsibility.

  6. User assignment: Users are granted access to system functions by assigning roles to them.

‘(C) Brandeis Consulting’

Authorizations

SAP_ALL

The SAP_ALL profile contains all authorizations for a system.

Transaction SU53

Every authorization check is logged. Transaction SU53 can be used to display missing authorizations after the check has failed.

‘(C) Brandeis Consulting’

Namespaces

Z and Y namespace

Customers may create development objects that begin with Z and Y. You are responsible for ensuring that there are no name collisions within your own company.

Prefix namespaces /ABC/

Partners and some SAP modules/components use a so-called partner namespace. This consists of a 3-5 digit abbreviation between two slashes. All development objects must begin with this.

Namespaces are assigned by SAP.

SAP namespace

SAP uses everything else for its own developments.

‘(C) Brandeis Consulting’

Object catalog

All development objects are registered in the object catalog. This is the TADIR table. It contains important information about the objects, which is important for transports, among other things:

  • Object type & name
  • Package assignment
  • Original system
  • Creator
  • Creation date
  • Delete flag
  • Original language
  • Flag indicating whether the object was generated
‘(C) Brandeis Consulting’

Packages and local objects

All development objects are located in a package (aka. development class). The package is primarily a classification criterion.
The package

  • can be local or define a transport channel
  • is not a namespace
  • can be changed later

The package $TMP is always local. Here, the objects are assigned to the respective user.

‘(C) Brandeis Consulting’

Data Dictionary aka. DDic

The Data Dictionary in SAP is a central repository in which all database objects and other modeling objects are defined:

  • Database tables
  • Database views
  • Structures
  • Data elements
  • Domains

In the past, the DDic was responsible for generating the corresponding database objects on different database systems (Oracle, IBM, Microsoft, etc.). Today, the SAP HANA database is almost the only one used.

‘(C) Brandeis Consulting’

Saving and activating

The definitions of development objects in SAP are stored in a repository in database tables. Only when they are activated are runtime objects generated from them. This means that there may be two versions of an object:

  • the active version - corresponds to the runtime object, and
  • the modified version - contains all changes that may have been made but have not yet been activated.
‘(C) Brandeis Consulting’