abapGit Integration
Leveraging the already well-known open-source software abapGit, we now provide an interface to integrate all Neptune DXP artifacts with GitHub. This will allow you to have side-by-side your ABAP artifacts with your Neptune DXP artifacts, making it possible to store, version, and deploy full solutions across systems using GitHub.
Prerequisites
For this extension to work, the developer version of abapGit is required. Please make sure you follow these prerequisites:
How it works?
AbapGit allows you to connect one SAP package to one GitHub repository, enabling you to then pull and push the contents of that package from and to the GitHub repository. All Neptune DXP artifacts now allow you to assign an SAP package so that you can integrate these artifacts along with your SAP objects.
The serializers for the Neptune DXP artifacts will turn the table contents of the artifacts into JSON files. Wherever there is javascript, typescript, CSS, or HTML code sections in the artifacts, those sections will be serialized into ".js", ".ts", ".css", and ".html" files. As an example, for applications, the serializer will pick up the CSS code and create a ".css" file, all coded events and scripts will be converted into ".js" files. These files can be edited and then pulled back to the application with the new code.
The name of the serialized files will be composed of the following parts: "NAME / DESCRIPTION of the artifact" @ "key of the artifact"."Object Type"."name of the table"."Name of the object"."event"."extension of file".
|
Artifacts that have the key type "CHAR" will be presented with the key itself as the name of the artifact in the abapGit list of objects.
Artifacts with the key type "GUID" will have the GUID displayed as the name of the artifact, but the name of the artifact will be displayed in the file names.
|
Due to some limitations, we needed to map our artifacts to a 4-character code, so it can be integrated within abapGit. In the table below you can check the mapping of the Neptune DXP artifact to the abapGit object type that will be displayed in the list of objects. This can also be consulted in the system using table /NEPTUNE/ATY.
abapGit Object Type | Neptune DXP Artifact Type | key type |
---|---|---|
ZN00 |
Metadata |
|
ZN01 |
App |
CHAR |
ZN02 |
API |
GUID |
ZN03 |
Launchpad |
CHAR |
ZN04 |
TileGroup |
GUID |
ZN05 |
Tile |
GUID |
ZN06 |
Policy |
GUID |
ZN07 |
Launchpad Layout |
GUID |
ZN08 |
TileLayout |
GUID |
ZN09 |
Enhancement |
CHAR |
ZN10 |
Login Page |
CHAR |
ZN11 |
Sticky Banner |
CHAR |
ZN12 |
Splash Screen |
CHAR |
ZN13 |
Custom Color |
CHAR |
ZN14 |
RichText Template |
GUID |
ZN15 |
Custom JS Helper |
GUID |
ZN16 |
Documentation |
CHAR |
ZN17 |
RFC Mapping |
CHAR |
ZN18 |
Media Library |
GUID |
ZN19 |
Media Pack |
GUID |
ZN20 |
URL Alias |
GUID |
ZN21 |
oData |
GUID |
ZN22 |
Mobile Client |
CHAR |
Deployment
You will need to perform two steps to enable this extension in your system.
First step
Download and install our extension class in your system, or pull it from GitHub using abapGit.
Second step
If this is the first time implementing abapGit user exits, you will need to create a class named ZCL_ABAPGIT_USER_EXIT with interface ZIF_ABAPGIT_EXIT, then it is necessary to implement the code shown below in the mentioned methods. The full user exit guide for abapGit can be found here.
If you already have the abapGit user exit class implemented, please add and adjust the code shown below to the mentioned methods.
CHANGE_SUPPORTED_OBJECT_TYPES
// Change supported object types to recognize Neptune DXP Artifacts
method zif_abapgit_exit~change_supported_object_types.
data: lt_neptune_types type /neptune/cl_abapgit_user_exit=>ty_object_types_tt,
ls_neptune_types like line of lt_neptune_types.
data ls_types like line of ct_types.
lt_neptune_types = /neptune/cl_abapgit_user_exit=>change_supported_object_types( ).
loop at lt_neptune_types into ls_neptune_types.
ls_types = ls_neptune_types.
append ls_types to ct_types.
endloop.
endmethod.
CHANGE_TADIR
// Include Neptune DXP Artifacts in the internal tadir table
method zif_abapgit_exit~change_tadir.
data: lt_neptune_tadir type /neptune/cl_abapgit_user_exit=>ty_tadir_tt,
ls_neptune_tadir like line of lt_neptune_tadir.
data ls_tadir like line of ct_tadir.
lt_neptune_tadir = /neptune/cl_abapgit_user_exit=>change_tadir( iv_package = iv_package ).
loop at lt_neptune_tadir into ls_neptune_tadir.
move-corresponding ls_neptune_tadir to ls_tadir.
append ls_tadir to ct_tadir.
endloop.
endmethod.
Changelog
The changelog can be found in the GitHub repository here.