abapgit-agent 1.1.6 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/release.yml +3 -1
- package/CLAUDE.md +248 -0
- package/README.md +16 -2
- package/RELEASE_NOTES.md +80 -8
- package/abap/CLAUDE.md +72 -6
- package/abap/copilot-instructions.md +51 -0
- package/abap/zcl_abgagt_cmd_factory.clas.abap +2 -0
- package/abap/zcl_abgagt_command_tree.clas.abap +237 -0
- package/abap/zcl_abgagt_command_tree.clas.xml +15 -0
- package/abap/zcl_abgagt_command_view.clas.abap +238 -0
- package/abap/zcl_abgagt_command_view.clas.xml +15 -0
- package/abap/zcl_abgagt_resource_tree.clas.abap +70 -0
- package/abap/zcl_abgagt_resource_tree.clas.xml +15 -0
- package/abap/zcl_abgagt_resource_view.clas.abap +68 -0
- package/abap/zcl_abgagt_resource_view.clas.xml +15 -0
- package/abap/zcl_abgagt_rest_handler.clas.abap +2 -0
- package/abap/zcl_abgagt_viewer_clas.clas.abap +58 -0
- package/abap/zcl_abgagt_viewer_clas.clas.xml +15 -0
- package/abap/zcl_abgagt_viewer_dtel.clas.abap +98 -0
- package/abap/zcl_abgagt_viewer_dtel.clas.xml +15 -0
- package/abap/zcl_abgagt_viewer_factory.clas.abap +41 -0
- package/abap/zcl_abgagt_viewer_factory.clas.xml +15 -0
- package/abap/zcl_abgagt_viewer_intf.clas.abap +58 -0
- package/abap/zcl_abgagt_viewer_intf.clas.xml +15 -0
- package/abap/zcl_abgagt_viewer_stru.clas.abap +59 -0
- package/abap/zcl_abgagt_viewer_stru.clas.xml +15 -0
- package/abap/zcl_abgagt_viewer_tabl.clas.abap +59 -0
- package/abap/zcl_abgagt_viewer_tabl.clas.xml +15 -0
- package/abap/zif_abgagt_command.intf.abap +3 -1
- package/abap/zif_abgagt_viewer.intf.abap +11 -0
- package/abap/zif_abgagt_viewer.intf.xml +15 -0
- package/bin/abapgit-agent +397 -0
- package/docs/commands.md +27 -8
- package/docs/tree-command.md +303 -0
- package/docs/view-command.md +409 -0
- package/package.json +1 -1
- package/src/abap-client.js +22 -0
- package/src/agent.js +27 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
*"*"use source
|
|
2
|
+
*"*"Local Interface:
|
|
3
|
+
*"**********************************************************************
|
|
4
|
+
CLASS zcl_abgagt_viewer_clas DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
|
5
|
+
|
|
6
|
+
PUBLIC SECTION.
|
|
7
|
+
INTERFACES zif_abgagt_viewer.
|
|
8
|
+
|
|
9
|
+
ENDCLASS.
|
|
10
|
+
|
|
11
|
+
CLASS zcl_abgagt_viewer_clas IMPLEMENTATION.
|
|
12
|
+
|
|
13
|
+
METHOD zif_abgagt_viewer~get_info.
|
|
14
|
+
DATA: lv_obj_name TYPE tadir-obj_name,
|
|
15
|
+
lv_devclass TYPE tadir-devclass,
|
|
16
|
+
lv_prog TYPE program,
|
|
17
|
+
lt_source TYPE TABLE OF string,
|
|
18
|
+
lv_line TYPE string.
|
|
19
|
+
|
|
20
|
+
SELECT SINGLE obj_name devclass FROM tadir
|
|
21
|
+
INTO (lv_obj_name, lv_devclass)
|
|
22
|
+
WHERE obj_name = iv_name
|
|
23
|
+
AND object = 'CLAS'.
|
|
24
|
+
IF sy-subrc = 0.
|
|
25
|
+
rs_info-name = iv_name.
|
|
26
|
+
rs_info-type = 'CLAS'.
|
|
27
|
+
rs_info-type_text = 'Class'.
|
|
28
|
+
rs_info-description = |Class { iv_name } in { lv_devclass }|.
|
|
29
|
+
ELSE.
|
|
30
|
+
rs_info-name = iv_name.
|
|
31
|
+
rs_info-type = 'CLAS'.
|
|
32
|
+
rs_info-type_text = 'Class'.
|
|
33
|
+
rs_info-not_found = abap_true.
|
|
34
|
+
ENDIF.
|
|
35
|
+
|
|
36
|
+
" Get class public section program name using CL_OO_CLASSNAME_SERVICE
|
|
37
|
+
DATA lv_clsname TYPE seoclsname.
|
|
38
|
+
lv_clsname = iv_name.
|
|
39
|
+
CALL METHOD cl_oo_classname_service=>get_pubsec_name
|
|
40
|
+
EXPORTING
|
|
41
|
+
clsname = lv_clsname
|
|
42
|
+
RECEIVING
|
|
43
|
+
result = lv_prog.
|
|
44
|
+
|
|
45
|
+
" Read source from program
|
|
46
|
+
READ REPORT lv_prog INTO lt_source.
|
|
47
|
+
IF sy-subrc = 0.
|
|
48
|
+
LOOP AT lt_source INTO lv_line.
|
|
49
|
+
IF rs_info-source IS INITIAL.
|
|
50
|
+
rs_info-source = lv_line.
|
|
51
|
+
ELSE.
|
|
52
|
+
rs_info-source = rs_info-source && |\n| && lv_line.
|
|
53
|
+
ENDIF.
|
|
54
|
+
ENDLOOP.
|
|
55
|
+
ENDIF.
|
|
56
|
+
ENDMETHOD.
|
|
57
|
+
|
|
58
|
+
ENDCLASS.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
|
3
|
+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
4
|
+
<asx:values>
|
|
5
|
+
<VSEOCLASS>
|
|
6
|
+
<CLSNAME>ZCL_ABGAGT_VIEWER_CLAS</CLSNAME>
|
|
7
|
+
<LANGU>E</LANGU>
|
|
8
|
+
<DESCRIPT>Viewer for ABAP Classes</DESCRIPT>
|
|
9
|
+
<EXPOSURE>2</EXPOSURE>
|
|
10
|
+
<STATE>1</STATE>
|
|
11
|
+
<UNICODE>X</UNICODE>
|
|
12
|
+
</VSEOCLASS>
|
|
13
|
+
</asx:values>
|
|
14
|
+
</asx:abap>
|
|
15
|
+
</abapGit>
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
*"*"use source
|
|
2
|
+
*"*"Local Interface:
|
|
3
|
+
*"**********************************************************************
|
|
4
|
+
CLASS zcl_abgagt_viewer_dtel DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
|
5
|
+
|
|
6
|
+
PUBLIC SECTION.
|
|
7
|
+
INTERFACES zif_abgagt_viewer.
|
|
8
|
+
|
|
9
|
+
ENDCLASS.
|
|
10
|
+
|
|
11
|
+
CLASS zcl_abgagt_viewer_dtel IMPLEMENTATION.
|
|
12
|
+
|
|
13
|
+
METHOD zif_abgagt_viewer~get_info.
|
|
14
|
+
DATA: lv_obj_name TYPE tadir-obj_name,
|
|
15
|
+
lv_devclass TYPE tadir-devclass,
|
|
16
|
+
lv_leng TYPE dd04v-leng,
|
|
17
|
+
lv_decimals TYPE dd04v-decimals.
|
|
18
|
+
|
|
19
|
+
rs_info-name = iv_name.
|
|
20
|
+
rs_info-type = 'DTEL'.
|
|
21
|
+
rs_info-type_text = 'Data Element'.
|
|
22
|
+
|
|
23
|
+
" Get package from TADIR
|
|
24
|
+
SELECT SINGLE obj_name devclass FROM tadir
|
|
25
|
+
INTO (lv_obj_name, lv_devclass)
|
|
26
|
+
WHERE obj_name = iv_name
|
|
27
|
+
AND object = 'DTEL'.
|
|
28
|
+
IF sy-subrc = 0.
|
|
29
|
+
rs_info-description = |Data Element { iv_name } in { lv_devclass }|.
|
|
30
|
+
ELSE.
|
|
31
|
+
rs_info-not_found = abap_true.
|
|
32
|
+
ENDIF.
|
|
33
|
+
|
|
34
|
+
" Get data element details from DD04V
|
|
35
|
+
SELECT SINGLE dd04v~rollname dd04v~ddtext dd04v~domname
|
|
36
|
+
dd04v~datatype dd04v~leng dd04v~decimals
|
|
37
|
+
INTO (rs_info-name, rs_info-description, rs_info-domain,
|
|
38
|
+
rs_info-domain_type, lv_leng, lv_decimals)
|
|
39
|
+
FROM dd04v
|
|
40
|
+
WHERE rollname = iv_name
|
|
41
|
+
AND ddlanguage = 'E'.
|
|
42
|
+
IF sy-subrc <> 0.
|
|
43
|
+
" Fallback: try without language filter
|
|
44
|
+
SELECT SINGLE rollname ddtext domname datatype leng decimals
|
|
45
|
+
INTO (rs_info-name, rs_info-description, rs_info-domain,
|
|
46
|
+
rs_info-domain_type, lv_leng, lv_decimals)
|
|
47
|
+
FROM dd04v
|
|
48
|
+
WHERE rollname = iv_name.
|
|
49
|
+
ENDIF.
|
|
50
|
+
|
|
51
|
+
rs_info-domain_length = lv_leng.
|
|
52
|
+
rs_info-domain_decimals = lv_decimals.
|
|
53
|
+
|
|
54
|
+
" Build components table for additional info
|
|
55
|
+
IF rs_info-domain IS NOT INITIAL.
|
|
56
|
+
APPEND VALUE #(
|
|
57
|
+
field = 'DOMAIN'
|
|
58
|
+
key = abap_false
|
|
59
|
+
type = rs_info-domain_type
|
|
60
|
+
length = rs_info-domain_length
|
|
61
|
+
dataelement = rs_info-domain
|
|
62
|
+
description = |Domain: { rs_info-domain }|
|
|
63
|
+
) TO rs_info-components.
|
|
64
|
+
ENDIF.
|
|
65
|
+
|
|
66
|
+
APPEND VALUE #(
|
|
67
|
+
field = 'DATA_TYPE'
|
|
68
|
+
key = abap_false
|
|
69
|
+
type = 'CHAR'
|
|
70
|
+
length = 10
|
|
71
|
+
dataelement = ''
|
|
72
|
+
description = |ABAP Type: { rs_info-domain_type }|
|
|
73
|
+
) TO rs_info-components.
|
|
74
|
+
|
|
75
|
+
IF rs_info-domain_length > 0.
|
|
76
|
+
APPEND VALUE #(
|
|
77
|
+
field = 'LENGTH'
|
|
78
|
+
key = abap_false
|
|
79
|
+
type = 'NUMC'
|
|
80
|
+
length = 5
|
|
81
|
+
dataelement = ''
|
|
82
|
+
description = |Length: { rs_info-domain_length }|
|
|
83
|
+
) TO rs_info-components.
|
|
84
|
+
ENDIF.
|
|
85
|
+
|
|
86
|
+
IF rs_info-domain_decimals > 0.
|
|
87
|
+
APPEND VALUE #(
|
|
88
|
+
field = 'DECIMALS'
|
|
89
|
+
key = abap_false
|
|
90
|
+
type = 'NUMC'
|
|
91
|
+
length = 2
|
|
92
|
+
dataelement = ''
|
|
93
|
+
description = |Decimals: { rs_info-domain_decimals }|
|
|
94
|
+
) TO rs_info-components.
|
|
95
|
+
ENDIF.
|
|
96
|
+
ENDMETHOD.
|
|
97
|
+
|
|
98
|
+
ENDCLASS.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
|
3
|
+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
4
|
+
<asx:values>
|
|
5
|
+
<VSEOCLASS>
|
|
6
|
+
<CLSNAME>ZCL_ABGAGT_VIEWER_DTEL</CLSNAME>
|
|
7
|
+
<LANGU>E</LANGU>
|
|
8
|
+
<DESCRIPT>Viewer for ABAP Data Elements</DESCRIPT>
|
|
9
|
+
<EXPOSURE>2</EXPOSURE>
|
|
10
|
+
<STATE>1</STATE>
|
|
11
|
+
<UNICODE>X</UNICODE>
|
|
12
|
+
</VSEOCLASS>
|
|
13
|
+
</asx:values>
|
|
14
|
+
</asx:abap>
|
|
15
|
+
</abapGit>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
*"*"use source
|
|
2
|
+
*"*"Local Interface:
|
|
3
|
+
*"**********************************************************************
|
|
4
|
+
CLASS zcl_abgagt_viewer_factory DEFINITION PUBLIC CREATE PRIVATE.
|
|
5
|
+
|
|
6
|
+
PUBLIC SECTION.
|
|
7
|
+
CLASS-METHODS get_instance
|
|
8
|
+
RETURNING VALUE(ro_instance) TYPE REF TO zcl_abgagt_viewer_factory.
|
|
9
|
+
|
|
10
|
+
METHODS get_viewer
|
|
11
|
+
IMPORTING iv_obj_type TYPE string
|
|
12
|
+
RETURNING VALUE(ro_viewer) TYPE REF TO zif_abgagt_viewer
|
|
13
|
+
RAISING cx_sy_create_object_error.
|
|
14
|
+
|
|
15
|
+
PRIVATE SECTION.
|
|
16
|
+
CONSTANTS mc_class_prefix TYPE string VALUE 'ZCL_ABGAGT_VIEWER_'.
|
|
17
|
+
|
|
18
|
+
METHODS build_class_name
|
|
19
|
+
IMPORTING iv_obj_type TYPE string
|
|
20
|
+
RETURNING VALUE(rv_class_name) TYPE seoclsname.
|
|
21
|
+
|
|
22
|
+
ENDCLASS.
|
|
23
|
+
|
|
24
|
+
CLASS zcl_abgagt_viewer_factory IMPLEMENTATION.
|
|
25
|
+
|
|
26
|
+
METHOD get_instance.
|
|
27
|
+
CREATE OBJECT ro_instance.
|
|
28
|
+
ENDMETHOD.
|
|
29
|
+
|
|
30
|
+
METHOD build_class_name.
|
|
31
|
+
" CLAS -> ZCL_ABGAGT_VIEWER_CLAS
|
|
32
|
+
rv_class_name = mc_class_prefix && iv_obj_type.
|
|
33
|
+
ENDMETHOD.
|
|
34
|
+
|
|
35
|
+
METHOD get_viewer.
|
|
36
|
+
DATA lv_class_name TYPE seoclsname.
|
|
37
|
+
lv_class_name = build_class_name( iv_obj_type ).
|
|
38
|
+
CREATE OBJECT ro_viewer TYPE (lv_class_name).
|
|
39
|
+
ENDMETHOD.
|
|
40
|
+
|
|
41
|
+
ENDCLASS.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
|
3
|
+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
4
|
+
<asx:values>
|
|
5
|
+
<VSEOCLASS>
|
|
6
|
+
<CLSNAME>ZCL_ABGAGT_VIEWER_FACTORY</CLSNAME>
|
|
7
|
+
<LANGU>E</LANGU>
|
|
8
|
+
<DESCRIPT>Factory for Creating Object Viewers</DESCRIPT>
|
|
9
|
+
<EXPOSURE>2</EXPOSURE>
|
|
10
|
+
<STATE>1</STATE>
|
|
11
|
+
<UNICODE>X</UNICODE>
|
|
12
|
+
</VSEOCLASS>
|
|
13
|
+
</asx:values>
|
|
14
|
+
</asx:abap>
|
|
15
|
+
</abapGit>
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
*"*"use source
|
|
2
|
+
*"*"Local Interface:
|
|
3
|
+
*"**********************************************************************
|
|
4
|
+
CLASS zcl_abgagt_viewer_intf DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
|
5
|
+
|
|
6
|
+
PUBLIC SECTION.
|
|
7
|
+
INTERFACES zif_abgagt_viewer.
|
|
8
|
+
|
|
9
|
+
ENDCLASS.
|
|
10
|
+
|
|
11
|
+
CLASS zcl_abgagt_viewer_intf IMPLEMENTATION.
|
|
12
|
+
|
|
13
|
+
METHOD zif_abgagt_viewer~get_info.
|
|
14
|
+
DATA: lv_obj_name TYPE tadir-obj_name,
|
|
15
|
+
lv_devclass TYPE tadir-devclass,
|
|
16
|
+
lv_prog TYPE program,
|
|
17
|
+
lt_source TYPE TABLE OF string,
|
|
18
|
+
lv_line TYPE string.
|
|
19
|
+
|
|
20
|
+
SELECT SINGLE obj_name devclass FROM tadir
|
|
21
|
+
INTO (lv_obj_name, lv_devclass)
|
|
22
|
+
WHERE obj_name = iv_name
|
|
23
|
+
AND object = 'INTF'.
|
|
24
|
+
IF sy-subrc = 0.
|
|
25
|
+
rs_info-name = iv_name.
|
|
26
|
+
rs_info-type = 'INTF'.
|
|
27
|
+
rs_info-type_text = 'Interface'.
|
|
28
|
+
rs_info-description = |Interface { iv_name } in { lv_devclass }|.
|
|
29
|
+
ELSE.
|
|
30
|
+
rs_info-name = iv_name.
|
|
31
|
+
rs_info-type = 'INTF'.
|
|
32
|
+
rs_info-type_text = 'Interface'.
|
|
33
|
+
rs_info-not_found = abap_true.
|
|
34
|
+
ENDIF.
|
|
35
|
+
|
|
36
|
+
" Get interface section program name using CL_OO_CLASSNAME_SERVICE
|
|
37
|
+
DATA lv_clsname TYPE seoclsname.
|
|
38
|
+
lv_clsname = iv_name.
|
|
39
|
+
CALL METHOD cl_oo_classname_service=>get_intfsec_name
|
|
40
|
+
EXPORTING
|
|
41
|
+
clsname = lv_clsname
|
|
42
|
+
RECEIVING
|
|
43
|
+
result = lv_prog.
|
|
44
|
+
|
|
45
|
+
" Read source from program
|
|
46
|
+
READ REPORT lv_prog INTO lt_source.
|
|
47
|
+
IF sy-subrc = 0.
|
|
48
|
+
LOOP AT lt_source INTO lv_line.
|
|
49
|
+
IF rs_info-source IS INITIAL.
|
|
50
|
+
rs_info-source = lv_line.
|
|
51
|
+
ELSE.
|
|
52
|
+
rs_info-source = rs_info-source && |\n| && lv_line.
|
|
53
|
+
ENDIF.
|
|
54
|
+
ENDLOOP.
|
|
55
|
+
ENDIF.
|
|
56
|
+
ENDMETHOD.
|
|
57
|
+
|
|
58
|
+
ENDCLASS.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
|
3
|
+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
4
|
+
<asx:values>
|
|
5
|
+
<VSEOCLASS>
|
|
6
|
+
<CLSNAME>ZCL_ABGAGT_VIEWER_INTF</CLSNAME>
|
|
7
|
+
<LANGU>E</LANGU>
|
|
8
|
+
<DESCRIPT>Viewer for ABAP Interfaces</DESCRIPT>
|
|
9
|
+
<EXPOSURE>2</EXPOSURE>
|
|
10
|
+
<STATE>1</STATE>
|
|
11
|
+
<UNICODE>X</UNICODE>
|
|
12
|
+
</VSEOCLASS>
|
|
13
|
+
</asx:values>
|
|
14
|
+
</asx:abap>
|
|
15
|
+
</abapGit>
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
*"*"use source
|
|
2
|
+
*"*"Local Interface:
|
|
3
|
+
*"**********************************************************************
|
|
4
|
+
CLASS zcl_abgagt_viewer_stru DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
|
5
|
+
|
|
6
|
+
PUBLIC SECTION.
|
|
7
|
+
INTERFACES zif_abgagt_viewer.
|
|
8
|
+
|
|
9
|
+
ENDCLASS.
|
|
10
|
+
|
|
11
|
+
CLASS zcl_abgagt_viewer_stru IMPLEMENTATION.
|
|
12
|
+
|
|
13
|
+
METHOD zif_abgagt_viewer~get_info.
|
|
14
|
+
DATA: lv_obj_name TYPE tadir-obj_name,
|
|
15
|
+
lv_devclass TYPE tadir-devclass.
|
|
16
|
+
|
|
17
|
+
SELECT SINGLE obj_name devclass FROM tadir
|
|
18
|
+
INTO (lv_obj_name, lv_devclass)
|
|
19
|
+
WHERE obj_name = iv_name
|
|
20
|
+
AND object = 'TABL'.
|
|
21
|
+
IF sy-subrc = 0.
|
|
22
|
+
rs_info-name = iv_name.
|
|
23
|
+
rs_info-type = 'STRU'.
|
|
24
|
+
rs_info-type_text = 'Structure'.
|
|
25
|
+
rs_info-description = |Structure { iv_name } in { lv_devclass }|.
|
|
26
|
+
ELSE.
|
|
27
|
+
rs_info-name = iv_name.
|
|
28
|
+
rs_info-type = 'STRU'.
|
|
29
|
+
rs_info-type_text = 'Structure'.
|
|
30
|
+
rs_info-not_found = abap_true.
|
|
31
|
+
ENDIF.
|
|
32
|
+
|
|
33
|
+
" Build components table with data element and description
|
|
34
|
+
SELECT fieldname AS field keyflag AS key datatype AS type rollname AS dataelement
|
|
35
|
+
FROM dd03l
|
|
36
|
+
INTO CORRESPONDING FIELDS OF TABLE rs_info-components
|
|
37
|
+
WHERE tabname = iv_name
|
|
38
|
+
AND as4local = 'A'
|
|
39
|
+
ORDER BY position.
|
|
40
|
+
|
|
41
|
+
" Add length and description
|
|
42
|
+
LOOP AT rs_info-components ASSIGNING FIELD-SYMBOL(<ls_comp>).
|
|
43
|
+
DATA ls_dd03l TYPE dd03l.
|
|
44
|
+
SELECT SINGLE * FROM dd03l INTO ls_dd03l
|
|
45
|
+
WHERE tabname = iv_name
|
|
46
|
+
AND fieldname = <ls_comp>-field
|
|
47
|
+
AND as4local = 'A'.
|
|
48
|
+
<ls_comp>-length = ls_dd03l-leng.
|
|
49
|
+
|
|
50
|
+
" Get description from DD04T
|
|
51
|
+
SELECT SINGLE ddtext FROM dd04t
|
|
52
|
+
INTO <ls_comp>-description
|
|
53
|
+
WHERE rollname = <ls_comp>-dataelement
|
|
54
|
+
AND ddlanguage = 'E'
|
|
55
|
+
AND as4local = 'A'.
|
|
56
|
+
ENDLOOP.
|
|
57
|
+
ENDMETHOD.
|
|
58
|
+
|
|
59
|
+
ENDCLASS.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
|
3
|
+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
4
|
+
<asx:values>
|
|
5
|
+
<VSEOCLASS>
|
|
6
|
+
<CLSNAME>ZCL_ABGAGT_VIEWER_STRU</CLSNAME>
|
|
7
|
+
<LANGU>E</LANGU>
|
|
8
|
+
<DESCRIPT>Viewer for ABAP Structures</DESCRIPT>
|
|
9
|
+
<EXPOSURE>2</EXPOSURE>
|
|
10
|
+
<STATE>1</STATE>
|
|
11
|
+
<UNICODE>X</UNICODE>
|
|
12
|
+
</VSEOCLASS>
|
|
13
|
+
</asx:values>
|
|
14
|
+
</asx:abap>
|
|
15
|
+
</abapGit>
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
*"*"use source
|
|
2
|
+
*"*"Local Interface:
|
|
3
|
+
*"**********************************************************************
|
|
4
|
+
CLASS zcl_abgagt_viewer_tabl DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
|
5
|
+
|
|
6
|
+
PUBLIC SECTION.
|
|
7
|
+
INTERFACES zif_abgagt_viewer.
|
|
8
|
+
|
|
9
|
+
ENDCLASS.
|
|
10
|
+
|
|
11
|
+
CLASS zcl_abgagt_viewer_tabl IMPLEMENTATION.
|
|
12
|
+
|
|
13
|
+
METHOD zif_abgagt_viewer~get_info.
|
|
14
|
+
DATA: lv_obj_name TYPE tadir-obj_name,
|
|
15
|
+
lv_devclass TYPE tadir-devclass.
|
|
16
|
+
|
|
17
|
+
SELECT SINGLE obj_name devclass FROM tadir
|
|
18
|
+
INTO (lv_obj_name, lv_devclass)
|
|
19
|
+
WHERE obj_name = iv_name
|
|
20
|
+
AND object = 'TABL'.
|
|
21
|
+
IF sy-subrc = 0.
|
|
22
|
+
rs_info-name = iv_name.
|
|
23
|
+
rs_info-type = 'TABL'.
|
|
24
|
+
rs_info-type_text = 'Table'.
|
|
25
|
+
rs_info-description = |Table { iv_name } in { lv_devclass }|.
|
|
26
|
+
ELSE.
|
|
27
|
+
rs_info-name = iv_name.
|
|
28
|
+
rs_info-type = 'TABL'.
|
|
29
|
+
rs_info-type_text = 'Table'.
|
|
30
|
+
rs_info-not_found = abap_true.
|
|
31
|
+
ENDIF.
|
|
32
|
+
|
|
33
|
+
" Build components table with data element and description
|
|
34
|
+
SELECT fieldname AS field keyflag AS key datatype AS type rollname AS dataelement
|
|
35
|
+
FROM dd03l
|
|
36
|
+
INTO CORRESPONDING FIELDS OF TABLE rs_info-components
|
|
37
|
+
WHERE tabname = iv_name
|
|
38
|
+
AND as4local = 'A'
|
|
39
|
+
ORDER BY position.
|
|
40
|
+
|
|
41
|
+
" Add length and description
|
|
42
|
+
LOOP AT rs_info-components ASSIGNING FIELD-SYMBOL(<ls_comp>).
|
|
43
|
+
DATA ls_dd03l TYPE dd03l.
|
|
44
|
+
SELECT SINGLE * FROM dd03l INTO ls_dd03l
|
|
45
|
+
WHERE tabname = iv_name
|
|
46
|
+
AND fieldname = <ls_comp>-field
|
|
47
|
+
AND as4local = 'A'.
|
|
48
|
+
<ls_comp>-length = ls_dd03l-leng.
|
|
49
|
+
|
|
50
|
+
" Get description from DD04T
|
|
51
|
+
SELECT SINGLE ddtext FROM dd04t
|
|
52
|
+
INTO <ls_comp>-description
|
|
53
|
+
WHERE rollname = <ls_comp>-dataelement
|
|
54
|
+
AND ddlanguage = 'E'
|
|
55
|
+
AND as4local = 'A'.
|
|
56
|
+
ENDLOOP.
|
|
57
|
+
ENDMETHOD.
|
|
58
|
+
|
|
59
|
+
ENDCLASS.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
|
3
|
+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
4
|
+
<asx:values>
|
|
5
|
+
<VSEOCLASS>
|
|
6
|
+
<CLSNAME>ZCL_ABGAGT_VIEWER_TABL</CLSNAME>
|
|
7
|
+
<LANGU>E</LANGU>
|
|
8
|
+
<DESCRIPT>Viewer for ABAP Tables</DESCRIPT>
|
|
9
|
+
<EXPOSURE>2</EXPOSURE>
|
|
10
|
+
<STATE>1</STATE>
|
|
11
|
+
<UNICODE>X</UNICODE>
|
|
12
|
+
</VSEOCLASS>
|
|
13
|
+
</asx:values>
|
|
14
|
+
</asx:abap>
|
|
15
|
+
</abapGit>
|
|
@@ -7,7 +7,9 @@ INTERFACE zif_abgagt_command PUBLIC.
|
|
|
7
7
|
gc_inspect TYPE string VALUE 'INSPECT',
|
|
8
8
|
gc_unit TYPE string VALUE 'UNIT',
|
|
9
9
|
gc_create TYPE string VALUE 'CREATE',
|
|
10
|
-
gc_import TYPE string VALUE 'IMPORT'
|
|
10
|
+
gc_import TYPE string VALUE 'IMPORT',
|
|
11
|
+
gc_tree TYPE string VALUE 'TREE',
|
|
12
|
+
gc_view TYPE string VALUE 'VIEW'.
|
|
11
13
|
|
|
12
14
|
" Get command name
|
|
13
15
|
METHODS get_name
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
*"* Use this source text module for the interface definition
|
|
2
|
+
INTERFACE zif_abgagt_viewer PUBLIC.
|
|
3
|
+
|
|
4
|
+
" Get detailed information about an ABAP object
|
|
5
|
+
" @parameter iv_name | Object name (e.g., ZCL_MY_CLASS)
|
|
6
|
+
" @parameter rs_info | Object information structure
|
|
7
|
+
METHODS get_info
|
|
8
|
+
IMPORTING iv_name TYPE string
|
|
9
|
+
RETURNING VALUE(rs_info) TYPE zcl_abgagt_command_view=>ty_view_object.
|
|
10
|
+
|
|
11
|
+
ENDINTERFACE.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
|
3
|
+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
4
|
+
<asx:values>
|
|
5
|
+
<VSEOINTERF>
|
|
6
|
+
<CLSNAME>ZIF_ABGAGT_VIEWER</CLSNAME>
|
|
7
|
+
<LANGU>E</LANGU>
|
|
8
|
+
<DESCRIPT>Viewer Interface for ABAP Object Types</DESCRIPT>
|
|
9
|
+
<EXPOSURE>2</EXPOSURE>
|
|
10
|
+
<STATE>1</STATE>
|
|
11
|
+
<UNICODE>X</UNICODE>
|
|
12
|
+
</VSEOINTERF>
|
|
13
|
+
</asx:values>
|
|
14
|
+
</asx:abap>
|
|
15
|
+
</abapGit>
|