mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
Fix jump for VIEW and TOBJ
This commit is contained in:
parent
9fade89856
commit
0d54997b44
|
@ -239,42 +239,22 @@ CLASS ZCL_ABAPGIT_OBJECT_TOBJ IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
DATA: ls_bcdata TYPE bdcdata,
|
||||
lt_bcdata TYPE STANDARD TABLE OF bdcdata.
|
||||
DATA: lv_object_name TYPE e071-obj_name.
|
||||
|
||||
ls_bcdata-program = 'SAPMSVIM'.
|
||||
ls_bcdata-dynpro = '0050'.
|
||||
ls_bcdata-dynbegin = 'X'.
|
||||
APPEND ls_bcdata TO lt_bcdata.
|
||||
lv_object_name = ms_item-obj_name.
|
||||
|
||||
CLEAR ls_bcdata.
|
||||
ls_bcdata-fnam = 'VIMDYNFLDS-VIEWNAME'.
|
||||
ls_bcdata-fval = substring( val = ms_item-obj_name
|
||||
len = strlen( ms_item-obj_name ) - 1 ).
|
||||
APPEND ls_bcdata TO lt_bcdata.
|
||||
|
||||
CLEAR ls_bcdata.
|
||||
ls_bcdata-fnam = 'VIMDYNFLDS-ELEM_GEN'.
|
||||
ls_bcdata-fval = abap_true.
|
||||
APPEND ls_bcdata TO lt_bcdata.
|
||||
|
||||
CLEAR ls_bcdata.
|
||||
ls_bcdata-fnam = 'BDC_OKCODE'.
|
||||
ls_bcdata-fval = '=SHOW'.
|
||||
APPEND ls_bcdata TO lt_bcdata.
|
||||
|
||||
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
|
||||
STARTING NEW TASK 'GIT'
|
||||
CALL FUNCTION 'TR_OBJECT_JUMP_TO_TOOL'
|
||||
EXPORTING
|
||||
tcode = 'SE54'
|
||||
mode_val = 'E'
|
||||
TABLES
|
||||
using_tab = lt_bcdata
|
||||
iv_pgmid = 'R3TR'
|
||||
iv_object = ms_item-obj_type
|
||||
iv_obj_name = lv_object_name
|
||||
EXCEPTIONS
|
||||
OTHERS = 1.
|
||||
jump_not_possible = 1
|
||||
OTHERS = 2.
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from ABAP4_CALL_TRANSACTION, TOBJ' ).
|
||||
zcx_abapgit_exception=>raise( |Jump not possible. Subrc={ sy-subrc } |
|
||||
&& |from TR_OBJECT_JUMP_TO_TOOL| ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -6,6 +6,39 @@ CLASS zcl_abapgit_object_view DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
|||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
TYPES: tty_dd26v TYPE STANDARD TABLE OF dd26v
|
||||
WITH NON-UNIQUE DEFAULT KEY,
|
||||
tty_dd27p TYPE STANDARD TABLE OF dd27p
|
||||
WITH NON-UNIQUE DEFAULT KEY,
|
||||
tty_dd28j TYPE STANDARD TABLE OF dd28j
|
||||
WITH NON-UNIQUE DEFAULT KEY,
|
||||
tty_dd28v TYPE STANDARD TABLE OF dd28v
|
||||
WITH NON-UNIQUE DEFAULT KEY.
|
||||
CONSTANTS: BEGIN OF co_viewclass,
|
||||
help TYPE viewclass VALUE 'H',
|
||||
database TYPE viewclass VALUE 'D',
|
||||
projection TYPE viewclass VALUE 'P',
|
||||
structure TYPE viewclass VALUE 'S',
|
||||
maintenance TYPE viewclass VALUE 'C',
|
||||
entity TYPE viewclass VALUE 'E',
|
||||
view_variant TYPE viewclass VALUE 'V',
|
||||
append TYPE viewclass VALUE 'A',
|
||||
external TYPE viewclass VALUE 'X',
|
||||
replication TYPE viewclass VALUE 'R',
|
||||
END OF co_viewclass.
|
||||
|
||||
METHODS:
|
||||
read_view
|
||||
EXPORTING
|
||||
es_dd25v TYPE dd25v
|
||||
es_dd09l TYPE dd09l
|
||||
et_dd26v TYPE zcl_abapgit_object_view=>tty_dd26v
|
||||
et_dd27p TYPE zcl_abapgit_object_view=>tty_dd27p
|
||||
et_dd28j TYPE zcl_abapgit_object_view=>tty_dd28j
|
||||
et_dd28v TYPE zcl_abapgit_object_view=>tty_dd28v
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -162,46 +195,60 @@ CLASS ZCL_ABAPGIT_OBJECT_VIEW IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
DATA: ls_dd25v TYPE dd25v.
|
||||
|
||||
read_view(
|
||||
IMPORTING
|
||||
es_dd25v = ls_dd25v ).
|
||||
|
||||
CASE ls_dd25v-viewclass.
|
||||
WHEN co_viewclass-view_variant.
|
||||
|
||||
CALL FUNCTION 'RS_TOOL_ACCESS'
|
||||
EXPORTING
|
||||
operation = 'SHOW'
|
||||
object_name = ms_item-obj_name
|
||||
object_type = ms_item-obj_type
|
||||
in_new_window = abap_true
|
||||
EXCEPTIONS
|
||||
not_executed = 1
|
||||
invalid_object_type = 2
|
||||
OTHERS = 3.
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |Error from RS_TOOL_ACCESS. Subrc={ sy-subrc }| ).
|
||||
ENDIF.
|
||||
|
||||
WHEN OTHERS.
|
||||
|
||||
jump_se11( iv_radio = 'RSRD1-VIMA'
|
||||
iv_field = 'RSRD1-VIMA_VAL' ).
|
||||
|
||||
ENDCASE.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lv_name TYPE ddobjname,
|
||||
ls_dd25v TYPE dd25v,
|
||||
DATA: ls_dd25v TYPE dd25v,
|
||||
ls_dd09l TYPE dd09l,
|
||||
lt_dd26v TYPE TABLE OF dd26v,
|
||||
lt_dd27p TYPE TABLE OF dd27p,
|
||||
lt_dd28j TYPE TABLE OF dd28j,
|
||||
lt_dd28v TYPE TABLE OF dd28v.
|
||||
lt_dd26v TYPE tty_dd26v,
|
||||
lt_dd27p TYPE tty_dd27p,
|
||||
lt_dd28j TYPE tty_dd28j,
|
||||
lt_dd28v TYPE tty_dd28v.
|
||||
|
||||
FIELD-SYMBOLS: <ls_dd27p> LIKE LINE OF lt_dd27p.
|
||||
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
CALL FUNCTION 'DDIF_VIEW_GET'
|
||||
EXPORTING
|
||||
name = lv_name
|
||||
state = 'A'
|
||||
langu = mv_language
|
||||
read_view(
|
||||
IMPORTING
|
||||
dd25v_wa = ls_dd25v
|
||||
dd09l_wa = ls_dd09l
|
||||
TABLES
|
||||
dd26v_tab = lt_dd26v
|
||||
dd27p_tab = lt_dd27p
|
||||
dd28j_tab = lt_dd28j
|
||||
dd28v_tab = lt_dd28v
|
||||
EXCEPTIONS
|
||||
illegal_input = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from DDIF_VIEW_GET' ).
|
||||
ENDIF.
|
||||
es_dd25v = ls_dd25v
|
||||
es_dd09l = ls_dd09l
|
||||
et_dd26v = lt_dd26v
|
||||
et_dd27p = lt_dd27p
|
||||
et_dd28j = lt_dd28j
|
||||
et_dd28v = lt_dd28v ).
|
||||
|
||||
IF ls_dd25v IS INITIAL.
|
||||
RETURN. " does not exist in system
|
||||
ENDIF.
|
||||
|
@ -252,4 +299,33 @@ CLASS ZCL_ABAPGIT_OBJECT_VIEW IMPLEMENTATION.
|
|||
iv_name = 'DD28V_TABLE' ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD read_view.
|
||||
|
||||
DATA: lv_name TYPE ddobjname.
|
||||
|
||||
lv_name = ms_item-obj_name.
|
||||
|
||||
CALL FUNCTION 'DDIF_VIEW_GET'
|
||||
EXPORTING
|
||||
name = lv_name
|
||||
state = 'A'
|
||||
langu = mv_language
|
||||
IMPORTING
|
||||
dd25v_wa = es_dd25v
|
||||
dd09l_wa = es_dd09l
|
||||
TABLES
|
||||
dd26v_tab = et_dd26v
|
||||
dd27p_tab = et_dd27p
|
||||
dd28j_tab = et_dd28j
|
||||
dd28v_tab = et_dd28v
|
||||
EXCEPTIONS
|
||||
illegal_input = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'error from DDIF_VIEW_GET' ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
Loading…
Reference in New Issue
Block a user