
An ABAP package groups repository objects (development objects) of an ABAP back-end system into a self-contained development unit.
A set of packages that are delivered in a single unit form a software component. While software components convey a software logistics view, packages provide a technical view of the architecture of an application or an SAP system. With this, a decisive contribution to the maintainability of the application can result from the setup of ABAP packages. In particular, independent application layers and modules, such as business logic, data retrieve, persistence, and user interface, can be mapped through tailored packages and suitable package hierarchies.
Packages are themselves repository objects that are created and defined with the GUI-based Package Builder tool. The ABAP packages perform the following key tasks:
Each individual package determines the transport behavior of all development objects contained in it.
Packages can encapsulate their development objects externally. This means that an object can automatically use objects from the same package, but not from a different package. Development objects of a different package can only be accessed if both packages (server and client packages) explicitly allow this.
The package concept defines the following rule mechanisms:
A server package grants access to its visible development objects by adding them to its package interface.
A client package declares its dependence on other packages whose development objects it uses.
In the new Eclipse-based IDE, packages form the basic modules for ABAP projects. In an ABAP project, packages create structures in such a way that the topmost level of the project tree structure is represented by package nodes. Each of these package nodes can, in turn, contain subpackages or development objects as subnodes.
Within the ABAP project tree, package nodes are those elements that can be included in the favorites list.