mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +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,
|
lt_descriptions TYPE lif_defs=>ty_seocompotx_tt,
|
||||||
ls_clskey TYPE seoclskey,
|
ls_clskey TYPE seoclskey,
|
||||||
lt_sotr TYPE lif_defs=>ty_sotr_tt,
|
lt_sotr TYPE lif_defs=>ty_sotr_tt,
|
||||||
lt_lines TYPE tlinetab,
|
lt_lines TYPE tlinetab.
|
||||||
lv_curr_lang TYPE langu,
|
|
||||||
lv_dummy TYPE string ##needed.
|
|
||||||
|
|
||||||
ls_clskey-clsname = ms_item-obj_name.
|
ls_clskey-clsname = ms_item-obj_name.
|
||||||
|
|
||||||
"If class was deserialized with a previous versions of abapGit and current language was different
|
"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
|
"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.
|
"these objects, set SY-LANGU to master language temporarily.
|
||||||
GET LOCALE LANGUAGE lv_curr_lang COUNTRY lv_dummy MODIFIER lv_dummy.
|
lcl_language=>set_current_language( mv_language ).
|
||||||
SET LOCALE 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,
|
CLEAR: ls_vseoclass-uuid,
|
||||||
ls_vseoclass-author,
|
ls_vseoclass-author,
|
||||||
|
|
|
@ -987,10 +987,7 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
||||||
lt_source TYPE TABLE OF abaptxt255,
|
lt_source TYPE TABLE OF abaptxt255,
|
||||||
lt_tpool TYPE textpool_table,
|
lt_tpool TYPE textpool_table,
|
||||||
ls_tpool LIKE LINE OF lt_tpool,
|
ls_tpool LIKE LINE OF lt_tpool,
|
||||||
lo_xml TYPE REF TO lcl_xml_output,
|
lo_xml TYPE REF TO lcl_xml_output.
|
||||||
lv_subrc LIKE sy-subrc,
|
|
||||||
lv_curr_lang TYPE langu,
|
|
||||||
lv_dummy TYPE string ##needed.
|
|
||||||
|
|
||||||
IF iv_program IS INITIAL.
|
IF iv_program IS INITIAL.
|
||||||
lv_program_name = is_item-obj_name.
|
lv_program_name = is_item-obj_name.
|
||||||
|
@ -998,8 +995,7 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
||||||
lv_program_name = iv_program.
|
lv_program_name = iv_program.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
GET LOCALE LANGUAGE lv_curr_lang COUNTRY lv_dummy MODIFIER lv_dummy.
|
lcl_language=>set_current_language( mv_language ).
|
||||||
SET LOCALE LANGUAGE mv_language.
|
|
||||||
|
|
||||||
CALL FUNCTION 'RPY_PROGRAM_READ'
|
CALL FUNCTION 'RPY_PROGRAM_READ'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
@ -1014,16 +1010,16 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
||||||
permission_error = 3
|
permission_error = 3
|
||||||
OTHERS = 4.
|
OTHERS = 4.
|
||||||
|
|
||||||
lv_subrc = sy-subrc.
|
IF sy-subrc = 2.
|
||||||
|
lcl_language=>restore_login_language( ).
|
||||||
SET LOCALE LANGUAGE lv_curr_lang.
|
|
||||||
|
|
||||||
IF lv_subrc = 2.
|
|
||||||
RETURN.
|
RETURN.
|
||||||
ELSEIF lv_subrc <> 0.
|
ELSEIF sy-subrc <> 0.
|
||||||
|
lcl_language=>restore_login_language( ).
|
||||||
lcx_exception=>raise( 'Error reading program' ).
|
lcx_exception=>raise( 'Error reading program' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
lcl_language=>restore_login_language( ).
|
||||||
|
|
||||||
ls_progdir = read_progdir( lv_program_name ).
|
ls_progdir = read_progdir( lv_program_name ).
|
||||||
|
|
||||||
IF io_xml IS BOUND.
|
IF io_xml IS BOUND.
|
||||||
|
@ -1070,10 +1066,7 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
||||||
lv_progname TYPE reposrc-progname,
|
lv_progname TYPE reposrc-progname,
|
||||||
ls_tpool LIKE LINE OF it_tpool,
|
ls_tpool LIKE LINE OF it_tpool,
|
||||||
lv_title TYPE rglif-title,
|
lv_title TYPE rglif-title,
|
||||||
ls_progdir_new TYPE progdir,
|
ls_progdir_new TYPE progdir.
|
||||||
lv_subrc LIKE sy-subrc,
|
|
||||||
lv_curr_lang TYPE langu,
|
|
||||||
lv_dummy TYPE string ##needed.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS: <lg_any> TYPE any.
|
FIELD-SYMBOLS: <lg_any> TYPE any.
|
||||||
|
|
||||||
|
@ -1118,8 +1111,7 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF lv_exists = abap_true.
|
IF lv_exists = abap_true.
|
||||||
GET LOCALE LANGUAGE lv_curr_lang COUNTRY lv_dummy MODIFIER lv_dummy.
|
lcl_language=>set_current_language( mv_language ).
|
||||||
SET LOCALE LANGUAGE mv_language.
|
|
||||||
|
|
||||||
CALL FUNCTION 'RPY_PROGRAM_UPDATE'
|
CALL FUNCTION 'RPY_PROGRAM_UPDATE'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
@ -1134,17 +1126,17 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
||||||
not_found = 3
|
not_found = 3
|
||||||
OTHERS = 4.
|
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'.
|
IF sy-msgid = 'EU' AND sy-msgno = '510'.
|
||||||
lcx_exception=>raise( 'User is currently editing program' ).
|
lcx_exception=>raise( 'User is currently editing program' ).
|
||||||
ELSE.
|
ELSE.
|
||||||
lcx_exception=>raise( 'PROG, error updating' ).
|
lcx_exception=>raise( 'PROG, error updating' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
lcl_language=>restore_login_language( ).
|
||||||
ELSE.
|
ELSE.
|
||||||
* function module RPY_PROGRAM_INSERT cannot handle function group includes
|
* function module RPY_PROGRAM_INSERT cannot handle function group includes
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,54 @@
|
||||||
*& Include ZABAPGIT_UTIL
|
*& 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.
|
CLASS lcl_state DEFINITION.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user