mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-03 13:26:12 +08:00

* Avoid DYNPRO_SEND_IN_BACKGROUND while ADT Pull When ADT (aka ABAP in Eclipse) is used to trigger a pull request, there is no SAPGUI available in the backend system. Whenever a dynpro is called, a DYNPRO_SEND_IN_BACKGROUND short dump occurs. This commit fixes issue #2632. Additional remark: In case of a private repository, username and password are passed to the backend system. The ADT backend coding handles this via class ZCL_ABAPGIT_DEFAULT_AUTH_INFO. To avoid sending a password dialog in the backend system (class CL_ABAPGIT_PASSWORD_DIALOG), ZABAPGIT coding needs to be adjusted to take over user/pw from ZCL_ABAPGIT_DEFAULT_AUTH_INFO. I know this is not nice and it would be better to have ZCL_ABAPGIT_DEFAULT_AUTH_INFO in ZABAPGIT. Even the best solution would be to re-use ZCL_ABAPGIT_LOGIN_MANAGER, but I would recommend to refactor this in a new pull request later on... * Fix abaplint identiation failure Fix abaplint identiation failure * Rest ZCL_ABAPGIT_PASSWORD_DIALOG Rest ZCL_ABAPGIT_PASSWORD_DIALOG to prelimiary version. To be changed in a different pull request....
94 lines
2.7 KiB
ABAP
94 lines
2.7 KiB
ABAP
CLASS zcl_abapgit_oo_interface DEFINITION PUBLIC
|
|
INHERITING FROM zcl_abapgit_oo_base.
|
|
PUBLIC SECTION.
|
|
METHODS:
|
|
zif_abapgit_oo_object_fnc~create REDEFINITION,
|
|
zif_abapgit_oo_object_fnc~get_includes REDEFINITION,
|
|
zif_abapgit_oo_object_fnc~get_interface_properties REDEFINITION,
|
|
zif_abapgit_oo_object_fnc~delete REDEFINITION.
|
|
PROTECTED SECTION.
|
|
PRIVATE SECTION.
|
|
ENDCLASS.
|
|
|
|
|
|
|
|
CLASS ZCL_ABAPGIT_OO_INTERFACE IMPLEMENTATION.
|
|
|
|
|
|
METHOD zif_abapgit_oo_object_fnc~create.
|
|
DATA: lt_vseoattrib TYPE seoo_attributes_r.
|
|
FIELD-SYMBOLS: <lv_clsname> TYPE seoclsname.
|
|
|
|
ASSIGN COMPONENT 'CLSNAME' OF STRUCTURE cg_properties TO <lv_clsname>.
|
|
ASSERT sy-subrc = 0.
|
|
|
|
lt_vseoattrib = convert_attrib_to_vseoattrib(
|
|
iv_clsname = <lv_clsname>
|
|
it_attributes = it_attributes ).
|
|
|
|
CALL FUNCTION 'SEO_INTERFACE_CREATE_COMPLETE'
|
|
EXPORTING
|
|
devclass = iv_package
|
|
overwrite = iv_overwrite
|
|
suppress_dialog = abap_true
|
|
CHANGING
|
|
interface = cg_properties
|
|
attributes = lt_vseoattrib
|
|
EXCEPTIONS
|
|
existing = 1
|
|
is_class = 2
|
|
db_error = 3
|
|
component_error = 4
|
|
no_access = 5
|
|
other = 6
|
|
OTHERS = 7.
|
|
IF sy-subrc <> 0.
|
|
zcx_abapgit_exception=>raise( |Error from SEO_INTERFACE_CREATE_COMPLETE. Subrc = { sy-subrc }| ).
|
|
ENDIF.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_oo_object_fnc~delete.
|
|
CALL FUNCTION 'SEO_INTERFACE_DELETE_COMPLETE'
|
|
EXPORTING
|
|
intkey = is_deletion_key
|
|
EXCEPTIONS
|
|
not_existing = 1
|
|
is_class = 2
|
|
db_error = 3
|
|
no_access = 4
|
|
other = 5
|
|
OTHERS = 6.
|
|
IF sy-subrc <> 0.
|
|
zcx_abapgit_exception=>raise( |Error from SEO_INTERFACE_DELETE_COMPLETE. Subrc = { sy-subrc }| ).
|
|
ENDIF.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_oo_object_fnc~get_includes.
|
|
DATA lv_interface_name TYPE seoclsname.
|
|
lv_interface_name = iv_object_name.
|
|
APPEND cl_oo_classname_service=>get_interfacepool_name( lv_interface_name ) TO rt_includes.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_oo_object_fnc~get_interface_properties.
|
|
CALL FUNCTION 'SEO_CLIF_GET'
|
|
EXPORTING
|
|
cifkey = is_interface_key
|
|
version = seoc_version_active
|
|
IMPORTING
|
|
interface = rs_interface_properties
|
|
EXCEPTIONS
|
|
not_existing = 1
|
|
deleted = 2
|
|
model_only = 3
|
|
OTHERS = 4.
|
|
IF sy-subrc = 1.
|
|
RETURN. " in case only inactive version exists
|
|
ELSEIF sy-subrc <> 0.
|
|
zcx_abapgit_exception=>raise( |Error from seo_clif_get. Subrc = { sy-subrc }| ).
|
|
ENDIF.
|
|
ENDMETHOD.
|
|
ENDCLASS.
|