mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
Added class lcl_language
Changes of SY-LANGU are now handled by local class lcl_language.
This commit is contained in:
parent
67956ee771
commit
17cc1536ed
|
@ -200,21 +200,24 @@ CLASS lcl_object_clas IMPLEMENTATION.
|
|||
lt_descriptions TYPE lif_defs=>ty_seocompotx_tt,
|
||||
ls_clskey TYPE seoclskey,
|
||||
lt_sotr TYPE lif_defs=>ty_sotr_tt,
|
||||
lt_lines TYPE tlinetab,
|
||||
lv_curr_lang TYPE langu,
|
||||
lv_dummy TYPE string ##needed.
|
||||
lt_lines TYPE tlinetab.
|
||||
|
||||
ls_clskey-clsname = ms_item-obj_name.
|
||||
|
||||
"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.
|
||||
GET LOCALE LANGUAGE lv_curr_lang COUNTRY lv_dummy MODIFIER lv_dummy.
|
||||
SET LOCALE LANGUAGE mv_language.
|
||||
lcl_language=>set_current_language( mv_language ).
|
||||
|
||||
ls_vseoclass = mo_object_oriented_object_fct->get_class_properties( is_class_key = ls_clskey ).
|
||||
TRY.
|
||||
ls_vseoclass = mo_object_oriented_object_fct->get_class_properties( is_class_key = ls_clskey ).
|
||||
|
||||
SET LOCALE LANGUAGE lv_curr_lang.
|
||||
CLEANUP.
|
||||
lcl_language=>restore_login_language( ).
|
||||
|
||||
ENDTRY.
|
||||
|
||||
lcl_language=>restore_login_language( ).
|
||||
|
||||
CLEAR: ls_vseoclass-uuid,
|
||||
ls_vseoclass-author,
|
||||
|
|
|
@ -987,10 +987,7 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
|||
lt_source TYPE TABLE OF abaptxt255,
|
||||
lt_tpool TYPE textpool_table,
|
||||
ls_tpool LIKE LINE OF lt_tpool,
|
||||
lo_xml TYPE REF TO lcl_xml_output,
|
||||
lv_subrc LIKE sy-subrc,
|
||||
lv_curr_lang TYPE langu,
|
||||
lv_dummy TYPE string ##needed.
|
||||
lo_xml TYPE REF TO lcl_xml_output.
|
||||
|
||||
IF iv_program IS INITIAL.
|
||||
lv_program_name = is_item-obj_name.
|
||||
|
@ -998,8 +995,7 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
|||
lv_program_name = iv_program.
|
||||
ENDIF.
|
||||
|
||||
GET LOCALE LANGUAGE lv_curr_lang COUNTRY lv_dummy MODIFIER lv_dummy.
|
||||
SET LOCALE LANGUAGE mv_language.
|
||||
lcl_language=>set_current_language( mv_language ).
|
||||
|
||||
CALL FUNCTION 'RPY_PROGRAM_READ'
|
||||
EXPORTING
|
||||
|
@ -1014,16 +1010,16 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
|||
permission_error = 3
|
||||
OTHERS = 4.
|
||||
|
||||
lv_subrc = sy-subrc.
|
||||
|
||||
SET LOCALE LANGUAGE lv_curr_lang.
|
||||
|
||||
IF lv_subrc = 2.
|
||||
IF sy-subrc = 2.
|
||||
lcl_language=>restore_login_language( ).
|
||||
RETURN.
|
||||
ELSEIF lv_subrc <> 0.
|
||||
ELSEIF sy-subrc <> 0.
|
||||
lcl_language=>restore_login_language( ).
|
||||
lcx_exception=>raise( 'Error reading program' ).
|
||||
ENDIF.
|
||||
|
||||
lcl_language=>restore_login_language( ).
|
||||
|
||||
ls_progdir = read_progdir( lv_program_name ).
|
||||
|
||||
IF io_xml IS BOUND.
|
||||
|
@ -1070,10 +1066,7 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
|||
lv_progname TYPE reposrc-progname,
|
||||
ls_tpool LIKE LINE OF it_tpool,
|
||||
lv_title TYPE rglif-title,
|
||||
ls_progdir_new TYPE progdir,
|
||||
lv_subrc LIKE sy-subrc,
|
||||
lv_curr_lang TYPE langu,
|
||||
lv_dummy TYPE string ##needed.
|
||||
ls_progdir_new TYPE progdir.
|
||||
|
||||
FIELD-SYMBOLS: <lg_any> TYPE any.
|
||||
|
||||
|
@ -1118,8 +1111,7 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
IF lv_exists = abap_true.
|
||||
GET LOCALE LANGUAGE lv_curr_lang COUNTRY lv_dummy MODIFIER lv_dummy.
|
||||
SET LOCALE LANGUAGE mv_language.
|
||||
lcl_language=>set_current_language( mv_language ).
|
||||
|
||||
CALL FUNCTION 'RPY_PROGRAM_UPDATE'
|
||||
EXPORTING
|
||||
|
@ -1134,17 +1126,17 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
|||
not_found = 3
|
||||
OTHERS = 4.
|
||||
|
||||
lv_subrc = sy-subrc.
|
||||
IF sy-subrc <> 0.
|
||||
lcl_language=>restore_login_language( ).
|
||||
|
||||
SET LOCALE LANGUAGE lv_curr_lang.
|
||||
|
||||
IF lv_subrc <> 0.
|
||||
IF sy-msgid = 'EU' AND sy-msgno = '510'.
|
||||
lcx_exception=>raise( 'User is currently editing program' ).
|
||||
ELSE.
|
||||
lcx_exception=>raise( 'PROG, error updating' ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
lcl_language=>restore_login_language( ).
|
||||
ELSE.
|
||||
* function module RPY_PROGRAM_INSERT cannot handle function group includes
|
||||
|
||||
|
|
|
@ -2,6 +2,54 @@
|
|||
*& 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