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.
|
METHOD zif_abapgit_object~jump.
|
||||||
|
|
||||||
DATA: ls_bcdata TYPE bdcdata,
|
DATA: lv_object_name TYPE e071-obj_name.
|
||||||
lt_bcdata TYPE STANDARD TABLE OF bdcdata.
|
|
||||||
|
|
||||||
ls_bcdata-program = 'SAPMSVIM'.
|
lv_object_name = ms_item-obj_name.
|
||||||
ls_bcdata-dynpro = '0050'.
|
|
||||||
ls_bcdata-dynbegin = 'X'.
|
|
||||||
APPEND ls_bcdata TO lt_bcdata.
|
|
||||||
|
|
||||||
CLEAR ls_bcdata.
|
CALL FUNCTION 'TR_OBJECT_JUMP_TO_TOOL'
|
||||||
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'
|
|
||||||
EXPORTING
|
EXPORTING
|
||||||
tcode = 'SE54'
|
iv_pgmid = 'R3TR'
|
||||||
mode_val = 'E'
|
iv_object = ms_item-obj_type
|
||||||
TABLES
|
iv_obj_name = lv_object_name
|
||||||
using_tab = lt_bcdata
|
|
||||||
EXCEPTIONS
|
EXCEPTIONS
|
||||||
OTHERS = 1.
|
jump_not_possible = 1
|
||||||
|
OTHERS = 2.
|
||||||
|
|
||||||
IF sy-subrc <> 0.
|
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.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -6,6 +6,39 @@ CLASS zcl_abapgit_object_view DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE 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.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -162,46 +195,60 @@ CLASS ZCL_ABAPGIT_OBJECT_VIEW IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD zif_abapgit_object~jump.
|
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'
|
jump_se11( iv_radio = 'RSRD1-VIMA'
|
||||||
iv_field = 'RSRD1-VIMA_VAL' ).
|
iv_field = 'RSRD1-VIMA_VAL' ).
|
||||||
|
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~serialize.
|
METHOD zif_abapgit_object~serialize.
|
||||||
|
|
||||||
DATA: lv_name TYPE ddobjname,
|
DATA: ls_dd25v TYPE dd25v,
|
||||||
ls_dd25v TYPE dd25v,
|
|
||||||
ls_dd09l TYPE dd09l,
|
ls_dd09l TYPE dd09l,
|
||||||
lt_dd26v TYPE TABLE OF dd26v,
|
lt_dd26v TYPE tty_dd26v,
|
||||||
lt_dd27p TYPE TABLE OF dd27p,
|
lt_dd27p TYPE tty_dd27p,
|
||||||
lt_dd28j TYPE TABLE OF dd28j,
|
lt_dd28j TYPE tty_dd28j,
|
||||||
lt_dd28v TYPE TABLE OF dd28v.
|
lt_dd28v TYPE tty_dd28v.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_dd27p> LIKE LINE OF lt_dd27p.
|
FIELD-SYMBOLS: <ls_dd27p> LIKE LINE OF lt_dd27p.
|
||||||
|
|
||||||
|
read_view(
|
||||||
lv_name = ms_item-obj_name.
|
|
||||||
|
|
||||||
CALL FUNCTION 'DDIF_VIEW_GET'
|
|
||||||
EXPORTING
|
|
||||||
name = lv_name
|
|
||||||
state = 'A'
|
|
||||||
langu = mv_language
|
|
||||||
IMPORTING
|
IMPORTING
|
||||||
dd25v_wa = ls_dd25v
|
es_dd25v = ls_dd25v
|
||||||
dd09l_wa = ls_dd09l
|
es_dd09l = ls_dd09l
|
||||||
TABLES
|
et_dd26v = lt_dd26v
|
||||||
dd26v_tab = lt_dd26v
|
et_dd27p = lt_dd27p
|
||||||
dd27p_tab = lt_dd27p
|
et_dd28j = lt_dd28j
|
||||||
dd28j_tab = lt_dd28j
|
et_dd28v = lt_dd28v ).
|
||||||
dd28v_tab = lt_dd28v
|
|
||||||
EXCEPTIONS
|
|
||||||
illegal_input = 1
|
|
||||||
OTHERS = 2.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
zcx_abapgit_exception=>raise( 'error from DDIF_VIEW_GET' ).
|
|
||||||
ENDIF.
|
|
||||||
IF ls_dd25v IS INITIAL.
|
IF ls_dd25v IS INITIAL.
|
||||||
RETURN. " does not exist in system
|
RETURN. " does not exist in system
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -252,4 +299,33 @@ CLASS ZCL_ABAPGIT_OBJECT_VIEW IMPLEMENTATION.
|
||||||
iv_name = 'DD28V_TABLE' ).
|
iv_name = 'DD28V_TABLE' ).
|
||||||
|
|
||||||
ENDMETHOD.
|
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.
|
ENDCLASS.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user