user exit for overriding host #848

This commit is contained in:
larshp 2017-07-23 07:55:23 +00:00
parent b462b3de68
commit 72dfb59a01
5 changed files with 73 additions and 1 deletions

View File

@ -48,6 +48,7 @@ INCLUDE zabapgit_sap_package.
INCLUDE zabapgit_folder_logic.
INCLUDE zabapgit_requirements.
INCLUDE zabapgit_authorizations.
INCLUDE zabapgit_exit.
INCLUDE zabapgit_stage.
INCLUDE zabapgit_git_helpers.

View File

@ -33,6 +33,8 @@ INTERFACE lif_defs.
TYPES: ty_string_tt TYPE STANDARD TABLE OF string WITH DEFAULT KEY.
TYPES: ty_icm_sinfo2_tt TYPE STANDARD TABLE OF icm_sinfo2 WITH DEFAULT KEY.
TYPES:
BEGIN OF ty_git_user,
name TYPE string,

View File

@ -0,0 +1,45 @@
*&---------------------------------------------------------------------*
*& Include ZABAPGIT_USER_EXITS
*&---------------------------------------------------------------------*
INTERFACE lif_exit.
METHODS:
change_local_host
CHANGING ct_hosts TYPE lif_defs=>ty_icm_sinfo2_tt.
ENDINTERFACE.
* add class LCL_USER_EXIT implementing LIF_EXIT in following include,
* place the include in a different package than ZABAPGIT
INCLUDE zabapgit_user_exit IF FOUND.
*******************
CLASS lcl_exit DEFINITION FINAL.
PUBLIC SECTION.
CLASS-METHODS: get_instance RETURNING VALUE(ri_exit) TYPE REF TO lif_exit.
INTERFACES: lif_exit.
ENDCLASS.
CLASS lcl_exit IMPLEMENTATION.
METHOD get_instance.
TRY.
CREATE OBJECT ri_exit TYPE ('LCL_USER_EXIT').
CATCH cx_sy_create_object_error.
CREATE OBJECT ri_exit TYPE lcl_exit.
ENDTRY.
ENDMETHOD.
METHOD lif_exit~change_local_host.
* default behavior
RETURN.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<PROGDIR>
<NAME>ZABAPGIT_EXIT</NAME>
<STATE>A</STATE>
<VARCL>X</VARCL>
<SUBC>I</SUBC>
<RLOAD>E</RLOAD>
<UCCHECK>X</UCCHECK>
</PROGDIR>
<TPOOL>
<item>
<ID>R</ID>
<ENTRY>Include ZABAPGIT_USER_EXITS</ENTRY>
<LENGTH>27</LENGTH>
</item>
</TPOOL>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -501,7 +501,7 @@ CLASS lcl_http IMPLEMENTATION.
METHOD is_local_system.
DATA: lv_host TYPE string,
lt_list TYPE STANDARD TABLE OF icm_sinfo2 WITH DEFAULT KEY.
lt_list TYPE lif_defs=>ty_icm_sinfo2_tt.
CALL FUNCTION 'ICM_GET_INFO2'
@ -516,6 +516,8 @@ CLASS lcl_http IMPLEMENTATION.
RETURN.
ENDIF.
lcl_exit=>get_instance( )->change_local_host( CHANGING ct_hosts = lt_list ).
FIND REGEX 'https?://([^/^:]*)' IN iv_url
SUBMATCHES lv_host.