When you create a development object in the ABAP environment, you must assign it to a package. Packages serve as containers for all of the development objects that logically belong together. Each package is also assigned to a software component. The complete set of development objects in the system is referred to as the ABAP Repository. Consequently, development objects are also often called repository objects.
You develop your applications in a development environment, but must then ensure that they can be tested in an appropriate test environment before being moved on to the production environment. Typically, you will have a single global account and a subaccount for each of the development, test, and production environments. Software components allow you to transport your objects.
When you create a new development object or change an existing one, you must assign it to a transport request. Transport requests ensure that all development objects that logically belong together are transported together into the test, and subsequently the production system.
Each transport request has an owner, and the owner can assign other users to the request. In this way, transport requests support team development.
When an object is included in a transport request, it is locked. This means that it can only be edited by a user who is assigned to the same request.
When work on all of the objects in the request is finished, all of the developers assigned to it must release their work. After this, the owner of the request can release the entire request. If the transport request belongs to a transportable software component, the system administrator can import it into the test system for testing.
When you release any kind of transport request, the system releases the locks on the objects in the request, so that any developer can access them again.
To learn how to create an ABAP package, refer to the demonstration, How to Create a Package.