mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
Refactor: i18n filename logic (#6892)
Co-authored-by: Albert Mink <albert.mink@sap.com>
This commit is contained in:
parent
72d80c1120
commit
412cd9995b
|
@ -46,6 +46,17 @@ CLASS zcl_abapgit_filename_logic DEFINITION
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
|
|
||||||
|
CLASS-METHODS i18n_file_to_object
|
||||||
|
IMPORTING
|
||||||
|
!iv_filename TYPE string
|
||||||
|
!iv_path TYPE string
|
||||||
|
EXPORTING
|
||||||
|
!es_item TYPE zif_abapgit_definitions=>ty_item
|
||||||
|
!ev_lang TYPE laiso
|
||||||
|
!ev_ext TYPE string
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
|
||||||
CLASS-METHODS object_to_file
|
CLASS-METHODS object_to_file
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!is_item TYPE zif_abapgit_definitions=>ty_item
|
!is_item TYPE zif_abapgit_definitions=>ty_item
|
||||||
|
@ -54,6 +65,14 @@ CLASS zcl_abapgit_filename_logic DEFINITION
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_filename) TYPE string .
|
VALUE(rv_filename) TYPE string .
|
||||||
|
|
||||||
|
CLASS-METHODS object_to_i18n_file
|
||||||
|
IMPORTING
|
||||||
|
!is_item TYPE zif_abapgit_definitions=>ty_item
|
||||||
|
!iv_lang TYPE laiso
|
||||||
|
!iv_ext TYPE string
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_filename) TYPE string.
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
@ -122,7 +141,9 @@ CLASS zcl_abapgit_filename_logic IMPLEMENTATION.
|
||||||
REPLACE ALL OCCURRENCES OF '#' IN lv_ext WITH '/'.
|
REPLACE ALL OCCURRENCES OF '#' IN lv_ext WITH '/'.
|
||||||
|
|
||||||
" Assume AFF namespace convention
|
" Assume AFF namespace convention
|
||||||
CREATE OBJECT go_aff_registry TYPE zcl_abapgit_aff_registry.
|
IF go_aff_registry IS INITIAL.
|
||||||
|
CREATE OBJECT go_aff_registry TYPE zcl_abapgit_aff_registry.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
IF go_aff_registry->is_supported_object_type( |{ lv_type }| ) = abap_true.
|
IF go_aff_registry->is_supported_object_type( |{ lv_type }| ) = abap_true.
|
||||||
REPLACE ALL OCCURRENCES OF '(' IN lv_name WITH '/'.
|
REPLACE ALL OCCURRENCES OF '(' IN lv_name WITH '/'.
|
||||||
|
@ -157,6 +178,26 @@ CLASS zcl_abapgit_filename_logic IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD i18n_file_to_object.
|
||||||
|
|
||||||
|
DATA lo_dot TYPE REF TO zcl_abapgit_dot_abapgit.
|
||||||
|
|
||||||
|
lo_dot = zcl_abapgit_dot_abapgit=>build_default( ).
|
||||||
|
|
||||||
|
file_to_object(
|
||||||
|
EXPORTING
|
||||||
|
iv_filename = iv_filename
|
||||||
|
iv_path = iv_path
|
||||||
|
io_dot = lo_dot
|
||||||
|
IMPORTING
|
||||||
|
es_item = es_item ).
|
||||||
|
|
||||||
|
FIND FIRST OCCURRENCE OF REGEX 'i18n\.([^.]{2})\.([^.]+)$' IN iv_filename
|
||||||
|
SUBMATCHES ev_lang ev_ext ##SUBRC_OK.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD is_obj_definition_file.
|
METHOD is_obj_definition_file.
|
||||||
|
|
||||||
DATA:
|
DATA:
|
||||||
|
@ -300,4 +341,14 @@ CLASS zcl_abapgit_filename_logic IMPLEMENTATION.
|
||||||
TRANSLATE rv_filename TO LOWER CASE.
|
TRANSLATE rv_filename TO LOWER CASE.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD object_to_i18n_file.
|
||||||
|
|
||||||
|
rv_filename = object_to_file(
|
||||||
|
is_item = is_item
|
||||||
|
iv_extra = |i18n.{ iv_lang }|
|
||||||
|
iv_ext = iv_ext ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -28,6 +28,8 @@ CLASS ltcl_run_checks DEFINITION FOR TESTING RISK LEVEL HARMLESS
|
||||||
dot_abapgit FOR TESTING RAISING zcx_abapgit_exception,
|
dot_abapgit FOR TESTING RAISING zcx_abapgit_exception,
|
||||||
file_to_object FOR TESTING RAISING zcx_abapgit_exception,
|
file_to_object FOR TESTING RAISING zcx_abapgit_exception,
|
||||||
object_to_file FOR TESTING RAISING zcx_abapgit_exception,
|
object_to_file FOR TESTING RAISING zcx_abapgit_exception,
|
||||||
|
i18n_file_to_object FOR TESTING RAISING zcx_abapgit_exception,
|
||||||
|
object_to_i18n_file FOR TESTING RAISING zcx_abapgit_exception,
|
||||||
file_to_object_package FOR TESTING RAISING zcx_abapgit_exception,
|
file_to_object_package FOR TESTING RAISING zcx_abapgit_exception,
|
||||||
object_to_file_package FOR TESTING RAISING zcx_abapgit_exception.
|
object_to_file_package FOR TESTING RAISING zcx_abapgit_exception.
|
||||||
|
|
||||||
|
@ -381,6 +383,90 @@ CLASS ltcl_run_checks IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD i18n_file_to_object.
|
||||||
|
|
||||||
|
DATA ls_item TYPE zif_abapgit_definitions=>ty_item.
|
||||||
|
DATA lv_lang TYPE laiso.
|
||||||
|
DATA lv_ext TYPE string.
|
||||||
|
|
||||||
|
" PO file
|
||||||
|
zcl_abapgit_filename_logic=>i18n_file_to_object(
|
||||||
|
EXPORTING
|
||||||
|
iv_filename = 'zprogram.prog.i18n.de.po'
|
||||||
|
iv_path = '/src/'
|
||||||
|
IMPORTING
|
||||||
|
es_item = ls_item
|
||||||
|
ev_lang = lv_lang
|
||||||
|
ev_ext = lv_ext ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
exp = 'PROG'
|
||||||
|
act = ls_item-obj_type ).
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
exp = 'ZPROGRAM'
|
||||||
|
act = ls_item-obj_name ).
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
exp = 'de'
|
||||||
|
act = lv_lang ).
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
exp = 'po'
|
||||||
|
act = lv_ext ).
|
||||||
|
|
||||||
|
" Properties file
|
||||||
|
zcl_abapgit_filename_logic=>i18n_file_to_object(
|
||||||
|
EXPORTING
|
||||||
|
iv_filename = 'zprogram.prog.i18n.en.properties'
|
||||||
|
iv_path = '/src/'
|
||||||
|
IMPORTING
|
||||||
|
es_item = ls_item
|
||||||
|
ev_lang = lv_lang
|
||||||
|
ev_ext = lv_ext ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
exp = 'PROG'
|
||||||
|
act = ls_item-obj_type ).
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
exp = 'ZPROGRAM'
|
||||||
|
act = ls_item-obj_name ).
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
exp = 'en'
|
||||||
|
act = lv_lang ).
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
exp = 'properties'
|
||||||
|
act = lv_ext ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD object_to_i18n_file.
|
||||||
|
|
||||||
|
DATA ls_item TYPE zif_abapgit_definitions=>ty_item.
|
||||||
|
DATA lv_filename TYPE string.
|
||||||
|
|
||||||
|
ls_item-obj_type = 'PROG'.
|
||||||
|
ls_item-obj_name = 'ZPROGRAM'.
|
||||||
|
|
||||||
|
" PO file
|
||||||
|
lv_filename = zcl_abapgit_filename_logic=>object_to_i18n_file(
|
||||||
|
is_item = ls_item
|
||||||
|
iv_lang = 'de'
|
||||||
|
iv_ext = 'po' ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
exp = 'zprogram.prog.i18n.de.po'
|
||||||
|
act = lv_filename ).
|
||||||
|
|
||||||
|
" Properties files
|
||||||
|
lv_filename = zcl_abapgit_filename_logic=>object_to_i18n_file(
|
||||||
|
is_item = ls_item
|
||||||
|
iv_lang = 'en'
|
||||||
|
iv_ext = 'properties' ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
exp = 'zprogram.prog.i18n.en.properties'
|
||||||
|
act = lv_filename ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD file_to_object_package.
|
METHOD file_to_object_package.
|
||||||
|
|
||||||
DATA ls_item TYPE zif_abapgit_definitions=>ty_item.
|
DATA ls_item TYPE zif_abapgit_definitions=>ty_item.
|
||||||
|
|
|
@ -106,7 +106,10 @@ CLASS zcl_abapgit_objects_files DEFINITION
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
METHODS get_i18n_properties_file
|
METHODS get_i18n_properties_file
|
||||||
RETURNING VALUE(rt_result) TYPE zif_abapgit_git_definitions=>ty_files_tt.
|
RETURNING
|
||||||
|
VALUE(rt_result) TYPE zif_abapgit_git_definitions=>ty_files_tt
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
|
||||||
|
@ -175,9 +178,9 @@ CLASS zcl_abapgit_objects_files IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ls_file-path = '/'.
|
ls_file-path = '/'.
|
||||||
ls_file-filename = zcl_abapgit_filename_logic=>object_to_file(
|
ls_file-filename = zcl_abapgit_filename_logic=>object_to_i18n_file(
|
||||||
is_item = ms_item
|
is_item = ms_item
|
||||||
iv_extra = |i18n.{ ii_i18n_file->lang( ) }|
|
iv_lang = ii_i18n_file->lang( )
|
||||||
iv_ext = ii_i18n_file->ext( ) ).
|
iv_ext = ii_i18n_file->ext( ) ).
|
||||||
|
|
||||||
APPEND ls_file TO mt_files.
|
APPEND ls_file TO mt_files.
|
||||||
|
@ -205,7 +208,6 @@ CLASS zcl_abapgit_objects_files IMPLEMENTATION.
|
||||||
|
|
||||||
DATA: ls_file TYPE zif_abapgit_git_definitions=>ty_file.
|
DATA: ls_file TYPE zif_abapgit_git_definitions=>ty_file.
|
||||||
|
|
||||||
|
|
||||||
ls_file-path = '/'.
|
ls_file-path = '/'.
|
||||||
ls_file-filename = zcl_abapgit_filename_logic=>object_to_file(
|
ls_file-filename = zcl_abapgit_filename_logic=>object_to_file(
|
||||||
is_item = ms_item
|
is_item = ms_item
|
||||||
|
@ -295,6 +297,39 @@ CLASS zcl_abapgit_objects_files IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_i18n_properties_file.
|
||||||
|
|
||||||
|
" TODO: replace this method with read_i18n_files
|
||||||
|
|
||||||
|
DATA lv_lang TYPE laiso.
|
||||||
|
DATA lv_ext TYPE string.
|
||||||
|
FIELD-SYMBOLS <ls_file> LIKE LINE OF mt_files.
|
||||||
|
|
||||||
|
LOOP AT mt_files ASSIGNING <ls_file>.
|
||||||
|
|
||||||
|
zcl_abapgit_filename_logic=>i18n_file_to_object(
|
||||||
|
EXPORTING
|
||||||
|
iv_path = <ls_file>-path
|
||||||
|
iv_filename = <ls_file>-filename
|
||||||
|
IMPORTING
|
||||||
|
ev_lang = lv_lang
|
||||||
|
ev_ext = lv_ext ).
|
||||||
|
|
||||||
|
IF lv_ext = 'properties'.
|
||||||
|
|
||||||
|
APPEND <ls_file> TO rt_result.
|
||||||
|
mark_accessed(
|
||||||
|
iv_path = <ls_file>-path
|
||||||
|
iv_file = <ls_file>-filename
|
||||||
|
iv_sha1 = <ls_file>-sha1 ).
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD is_json_metadata.
|
METHOD is_json_metadata.
|
||||||
|
|
||||||
DATA lv_pattern TYPE string.
|
DATA lv_pattern TYPE string.
|
||||||
|
@ -397,22 +432,33 @@ CLASS zcl_abapgit_objects_files IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD read_i18n_files.
|
METHOD read_i18n_files.
|
||||||
|
|
||||||
DATA lv_lang TYPE laiso.
|
DATA:
|
||||||
DATA lv_ext TYPE string.
|
lv_lang TYPE laiso,
|
||||||
DATA lo_po TYPE REF TO zcl_abapgit_po_file.
|
lv_ext TYPE string,
|
||||||
|
lo_po TYPE REF TO zcl_abapgit_po_file,
|
||||||
|
lo_properties TYPE REF TO zcl_abapgit_properties_file.
|
||||||
|
|
||||||
FIELD-SYMBOLS <ls_file> LIKE LINE OF mt_files.
|
FIELD-SYMBOLS <ls_file> LIKE LINE OF mt_files.
|
||||||
|
|
||||||
LOOP AT mt_files ASSIGNING <ls_file>.
|
LOOP AT mt_files ASSIGNING <ls_file>.
|
||||||
|
|
||||||
" TODO: Maybe this should be in zcl_abapgit_filename_logic
|
zcl_abapgit_filename_logic=>i18n_file_to_object(
|
||||||
FIND FIRST OCCURRENCE OF REGEX 'i18n\.([^.]{2})\.([^.]+)$' IN <ls_file>-filename SUBMATCHES lv_lang lv_ext.
|
EXPORTING
|
||||||
CHECK sy-subrc = 0.
|
iv_path = <ls_file>-path
|
||||||
|
iv_filename = <ls_file>-filename
|
||||||
|
IMPORTING
|
||||||
|
ev_lang = lv_lang
|
||||||
|
ev_ext = lv_ext ).
|
||||||
|
|
||||||
CASE lv_ext.
|
CASE lv_ext.
|
||||||
WHEN 'po'.
|
WHEN 'po'.
|
||||||
CREATE OBJECT lo_po EXPORTING iv_lang = lv_lang.
|
CREATE OBJECT lo_po EXPORTING iv_lang = lv_lang.
|
||||||
lo_po->parse( <ls_file>-data ).
|
lo_po->parse( <ls_file>-data ).
|
||||||
APPEND lo_po TO rt_i18n_files.
|
APPEND lo_po TO rt_i18n_files.
|
||||||
|
WHEN 'properties'.
|
||||||
|
CREATE OBJECT lo_properties EXPORTING iv_lang = lv_lang.
|
||||||
|
lo_properties->parse( <ls_file>-data ).
|
||||||
|
APPEND lo_properties TO rt_i18n_files.
|
||||||
WHEN OTHERS.
|
WHEN OTHERS.
|
||||||
CONTINUE. " Unsupported i18n file type
|
CONTINUE. " Unsupported i18n file type
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
@ -499,31 +545,4 @@ CLASS zcl_abapgit_objects_files IMPLEMENTATION.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD get_i18n_properties_file.
|
|
||||||
|
|
||||||
DATA lv_lang TYPE laiso.
|
|
||||||
DATA lv_ext TYPE string.
|
|
||||||
FIELD-SYMBOLS <ls_file> LIKE LINE OF mt_files.
|
|
||||||
|
|
||||||
LOOP AT mt_files ASSIGNING <ls_file>.
|
|
||||||
|
|
||||||
" TODO: Maybe this should be in zcl_abapgit_filename_logic
|
|
||||||
FIND FIRST OCCURRENCE OF REGEX 'i18n\.([^.]{2})\.([^.]+)$' IN <ls_file>-filename SUBMATCHES lv_lang lv_ext.
|
|
||||||
CHECK sy-subrc = 0.
|
|
||||||
|
|
||||||
IF sy-subrc = 0 AND lv_ext = `properties`.
|
|
||||||
|
|
||||||
APPEND <ls_file> TO rt_result.
|
|
||||||
mark_accessed(
|
|
||||||
iv_path = <ls_file>-path
|
|
||||||
iv_file = <ls_file>-filename
|
|
||||||
iv_sha1 = <ls_file>-sha1 ).
|
|
||||||
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -47,7 +47,6 @@ CLASS zcl_abapgit_po_file DEFINITION
|
||||||
comments TYPE STANDARD TABLE OF ty_comment WITH KEY kind text,
|
comments TYPE STANDARD TABLE OF ty_comment WITH KEY kind text,
|
||||||
END OF ty_msg_pair.
|
END OF ty_msg_pair.
|
||||||
|
|
||||||
|
|
||||||
DATA mv_lang TYPE laiso.
|
DATA mv_lang TYPE laiso.
|
||||||
DATA mt_pairs TYPE SORTED TABLE OF ty_msg_pair WITH UNIQUE KEY source.
|
DATA mt_pairs TYPE SORTED TABLE OF ty_msg_pair WITH UNIQUE KEY source.
|
||||||
|
|
||||||
|
@ -86,7 +85,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_PO_FILE IMPLEMENTATION.
|
CLASS zcl_abapgit_po_file IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD build_po_body.
|
METHOD build_po_body.
|
||||||
|
|
|
@ -10,7 +10,14 @@ CLASS zcl_abapgit_properties_file DEFINITION
|
||||||
c_properties_feature TYPE string VALUE 'TRANSL'.
|
c_properties_feature TYPE string VALUE 'TRANSL'.
|
||||||
|
|
||||||
METHODS constructor
|
METHODS constructor
|
||||||
IMPORTING iv_lang TYPE laiso.
|
IMPORTING
|
||||||
|
iv_lang TYPE laiso.
|
||||||
|
|
||||||
|
METHODS parse
|
||||||
|
IMPORTING
|
||||||
|
iv_xdata TYPE xstring
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
METHODS push_text_pairs
|
METHODS push_text_pairs
|
||||||
IMPORTING it_translation TYPE string_table.
|
IMPORTING it_translation TYPE string_table.
|
||||||
|
@ -28,12 +35,20 @@ ENDCLASS.
|
||||||
CLASS zcl_abapgit_properties_file IMPLEMENTATION.
|
CLASS zcl_abapgit_properties_file IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
mv_lang = to_lower( iv_lang ).
|
mv_lang = to_lower( iv_lang ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD parse.
|
||||||
|
DATA lv_data TYPE string.
|
||||||
|
|
||||||
|
lv_data = zcl_abapgit_convert=>xstring_to_string_utf8( iv_xdata ).
|
||||||
|
|
||||||
|
SPLIT lv_data AT cl_abap_char_utilities=>newline INTO TABLE mt_translation.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD push_text_pairs.
|
METHOD push_text_pairs.
|
||||||
mt_translation = it_translation.
|
mt_translation = it_translation.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
INTERFACE zif_abapgit_i18n_file
|
INTERFACE zif_abapgit_i18n_file PUBLIC.
|
||||||
PUBLIC.
|
|
||||||
|
|
||||||
TYPES: ty_table_of TYPE STANDARD TABLE OF REF TO zif_abapgit_i18n_file WITH DEFAULT KEY.
|
TYPES ty_table_of TYPE STANDARD TABLE OF REF TO zif_abapgit_i18n_file WITH DEFAULT KEY.
|
||||||
|
|
||||||
METHODS render
|
METHODS render
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_data) TYPE xstring
|
VALUE(rv_data) TYPE xstring
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
METHODS translate
|
METHODS translate
|
||||||
CHANGING
|
CHANGING
|
||||||
ct_text_pairs TYPE zif_abapgit_lxe_texts=>ty_text_pairs
|
ct_text_pairs TYPE zif_abapgit_lxe_texts=>ty_text_pairs
|
||||||
|
@ -17,8 +17,9 @@ INTERFACE zif_abapgit_i18n_file
|
||||||
METHODS ext
|
METHODS ext
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_ext) TYPE string.
|
VALUE(rv_ext) TYPE string.
|
||||||
|
|
||||||
METHODS lang
|
METHODS lang
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_lang) TYPE string.
|
VALUE(rv_lang) TYPE laiso.
|
||||||
|
|
||||||
ENDINTERFACE.
|
ENDINTERFACE.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user