PINF Headless Pull Support

Background

When abapGit deserializes a brand-new PINF (Package Interface) object, it calls cl_package_interface=>create_new_package_interface() to create the interface in the ABAP system. Without the i_suppress_dialog = abap_true parameter, RS_ACCESS_PERMISSION inside s_lock_db opens the CTS transport dialog (SAPLSTRD 0353) — a GUI screen that requires user interaction.

In headless/REST mode (which is how abapgit-agent pull works) there is no GUI session. The dialog throws CX_SY_DYN_CALL_ILLEGAL_TYPE, which is a subclass of cx_root but not zcx_abapgit_exception. It escaped abapGit’s DESERIALIZE_STEP catch boundary and was silently swallowed by the outer CATCH cx_root handler — the object was neither created nor reported as an error, leaving ACTIVATED_COUNT=0 with no log entry.

Fix

The abapGit fork used by this project adds i_suppress_dialog = abap_true to create_new_package_interface() in zcl_abapgit_object_pinf~create_or_load, and to lif_package_interface_facade~save. It also calls set_default_package(iv_package) and set_default_transport(iv_transport) before create_or_load so that RS_CORR_INSERT inside s_lock_db picks up the supplied transport request without showing a dialog.

Scope

This fix only affects brand-new PINF objects being pulled for the first time. Updating an existing PINF (already present in the ABAP system) already worked before this fix.

The fix works for both local packages ($*) and transportable packages. For transportable packages the transport request supplied during pull is reused via ABAP memory — no dialog shown.

Workflow

No changes to the pull command syntax — PINF objects are pulled the same way as any other XML-only object:

git add src/zmy_pinf.pinf.xml
git commit -m "feat: add package interface"
git push
abapgit-agent pull --files src/zmy_pinf.pinf.xml --sync-xml

If the pull still fails for a new PINF, verify your ABAP system has the fix applied:

abapgit-agent health

→ For PINF file format and XML template: abapgit-agent ref --topic abapgit-xml-only


Back to top

Copyright © 2024-2026 abapGit Agent. Distributed under MIT License.

This site uses Just the Docs, a documentation theme for Jekyll.