Improve this page

Packages with a class that implements ZIF_APACK_MANIFEST (interface is automatically created at initial start of abapGit) can define metadata that is interpreted by clients which support the APACK package and dependency management framework. Such an implementation class must reside in the top-level ABAP package which is serialized by abapGit so that it can be detected properly. After the class is instantiated, it needs to have the field ZIF_APACK_MANIFEST~DESCRIPTOR populated with the respective APACK metadata.

Note: Don’t put any functionality in such implementation classes, only use them to advertise APACK metadata.

The metadata follows the POM format by Apache Maven and specifies additional information as well:

If such an implementation class is detected during the serialization process, a corresponding .apack-mainfest.xml file will be created on the top level of the Git repository. This contains the APACK metadata information.

Transporting APACK implementation classes

The interface ZIF_APACK_MANIFEST is automatically created as local object, i.e. in package $TMP. In case you intend to transport projects containing an implementation class to follow-on systems, you either need to remove the implementation class from the transport or ensure that ZIF_APACK_MANIFEST is available on each follow-on system in order to avoid syntax errors. So, either let abapGit create it in all systems (don’t do that on production) or change the package assignment to a package with the same transport target as your projects and transport them together.


See the sample code on GitHub (uses IF_APACK_MANIFEST which is exclusively available on the SAP Cloud Platform ABAP Environment, descriptor format is compatible with ZIF_APACK_MANIFEST):