mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
Merge pull request #1093 from christianguenter2/ISSUE_1061
Refactor lcl_language to global class zcl_abapgit_language
This commit is contained in:
commit
402e00ed89
53
src/utils/zcl_abapgit_language.clas.abap
Normal file
53
src/utils/zcl_abapgit_language.clas.abap
Normal file
|
@ -0,0 +1,53 @@
|
|||
*----------------------------------------------------------------------*
|
||||
* This helper class is used to set and restore the current language.
|
||||
* As some of the SAP functions used rely on SY-LANGU containing the
|
||||
* master language, this class is used to temporarily change and then
|
||||
* restore the value of SY-LANGU.
|
||||
*----------------------------------------------------------------------*
|
||||
CLASS zcl_abapgit_language DEFINITION
|
||||
PUBLIC
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CLASS-DATA:
|
||||
current_language TYPE langu READ-ONLY,
|
||||
login_language TYPE langu READ-ONLY.
|
||||
|
||||
CLASS-METHODS:
|
||||
class_constructor,
|
||||
restore_login_language,
|
||||
set_current_language
|
||||
IMPORTING
|
||||
!iv_language TYPE langu.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_language IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD class_constructor.
|
||||
|
||||
|
||||
DATA lv_dummy TYPE string.
|
||||
|
||||
GET LOCALE LANGUAGE login_language COUNTRY lv_dummy MODIFIER lv_dummy.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD restore_login_language.
|
||||
|
||||
SET LOCALE LANGUAGE login_language.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD set_current_language.
|
||||
|
||||
SET LOCALE LANGUAGE iv_language.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
18
src/utils/zcl_abapgit_language.clas.xml
Normal file
18
src/utils/zcl_abapgit_language.clas.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>ZCL_ABAPGIT_LANGUAGE</CLSNAME>
|
||||
<VERSION>1</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Language</DESCRIPT>
|
||||
<EXPOSURE>2</EXPOSURE>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -207,17 +207,17 @@ CLASS lcl_object_clas IMPLEMENTATION.
|
|||
"If class was deserialized with a previous versions of abapGit and current language was different
|
||||
"from master language at this time, this call would return SY-LANGU as master language. To fix
|
||||
"these objects, set SY-LANGU to master language temporarily.
|
||||
lcl_language=>set_current_language( mv_language ).
|
||||
zcl_abapgit_language=>set_current_language( mv_language ).
|
||||
|
||||
TRY.
|
||||
ls_vseoclass = mo_object_oriented_object_fct->get_class_properties( is_class_key = ls_clskey ).
|
||||
|
||||
CLEANUP.
|
||||
lcl_language=>restore_login_language( ).
|
||||
zcl_abapgit_language=>restore_login_language( ).
|
||||
|
||||
ENDTRY.
|
||||
|
||||
lcl_language=>restore_login_language( ).
|
||||
zcl_abapgit_language=>restore_login_language( ).
|
||||
|
||||
CLEAR: ls_vseoclass-uuid,
|
||||
ls_vseoclass-author,
|
||||
|
|
|
@ -1011,7 +1011,7 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
|||
lv_program_name = iv_program.
|
||||
ENDIF.
|
||||
|
||||
lcl_language=>set_current_language( mv_language ).
|
||||
zcl_abapgit_language=>set_current_language( mv_language ).
|
||||
|
||||
CALL FUNCTION 'RPY_PROGRAM_READ'
|
||||
EXPORTING
|
||||
|
@ -1027,14 +1027,14 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
|||
OTHERS = 4.
|
||||
|
||||
IF sy-subrc = 2.
|
||||
lcl_language=>restore_login_language( ).
|
||||
zcl_abapgit_language=>restore_login_language( ).
|
||||
RETURN.
|
||||
ELSEIF sy-subrc <> 0.
|
||||
lcl_language=>restore_login_language( ).
|
||||
zcl_abapgit_language=>restore_login_language( ).
|
||||
zcx_abapgit_exception=>raise( 'Error reading program' ).
|
||||
ENDIF.
|
||||
|
||||
lcl_language=>restore_login_language( ).
|
||||
zcl_abapgit_language=>restore_login_language( ).
|
||||
|
||||
ls_progdir = read_progdir( lv_program_name ).
|
||||
|
||||
|
@ -1127,7 +1127,7 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
IF lv_exists = abap_true.
|
||||
lcl_language=>set_current_language( mv_language ).
|
||||
zcl_abapgit_language=>set_current_language( mv_language ).
|
||||
|
||||
CALL FUNCTION 'RPY_PROGRAM_UPDATE'
|
||||
EXPORTING
|
||||
|
@ -1143,7 +1143,7 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
|||
OTHERS = 4.
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
lcl_language=>restore_login_language( ).
|
||||
zcl_abapgit_language=>restore_login_language( ).
|
||||
|
||||
IF sy-msgid = 'EU' AND sy-msgno = '510'.
|
||||
zcx_abapgit_exception=>raise( 'User is currently editing program' ).
|
||||
|
@ -1152,7 +1152,7 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
|||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
lcl_language=>restore_login_language( ).
|
||||
zcl_abapgit_language=>restore_login_language( ).
|
||||
ELSE.
|
||||
* function module RPY_PROGRAM_INSERT cannot handle function group includes
|
||||
|
||||
|
|
|
@ -2,54 +2,6 @@
|
|||
*& Include ZABAPGIT_UTIL
|
||||
*&---------------------------------------------------------------------*
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS lcl_language DEFINITION
|
||||
*----------------------------------------------------------------------*
|
||||
* This helper class is used to set and restore the current language.
|
||||
* As some of the SAP functions used rely on SY-LANGU containing the
|
||||
* master language, this class is used to temporarily change and then
|
||||
* restore the value of SY-LANGU.
|
||||
*----------------------------------------------------------------------*
|
||||
CLASS lcl_language DEFINITION.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CLASS-DATA:
|
||||
current_language TYPE langu READ-ONLY,
|
||||
login_language TYPE langu READ-ONLY.
|
||||
|
||||
CLASS-METHODS:
|
||||
class_constructor,
|
||||
restore_login_language,
|
||||
set_current_language
|
||||
IMPORTING
|
||||
iv_language TYPE langu.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS lcl_language IMPLEMENTATION
|
||||
*----------------------------------------------------------------------*
|
||||
*
|
||||
*----------------------------------------------------------------------*
|
||||
CLASS lcl_language IMPLEMENTATION.
|
||||
|
||||
METHOD class_constructor.
|
||||
DATA lv_dummy TYPE string.
|
||||
|
||||
GET LOCALE LANGUAGE login_language COUNTRY lv_dummy MODIFIER lv_dummy.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD restore_login_language.
|
||||
SET LOCALE LANGUAGE login_language.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_current_language.
|
||||
SET LOCALE LANGUAGE iv_language.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS lcl_state DEFINITION.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
|
Loading…
Reference in New Issue
Block a user