abapgit-agent 1.4.0 → 1.6.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.
Files changed (115) hide show
  1. package/README.md +2 -0
  2. package/abap/guidelines/00_index.md +35 -0
  3. package/abap/guidelines/01_sql.md +72 -0
  4. package/abap/guidelines/02_exceptions.md +108 -0
  5. package/abap/guidelines/03_testing.md +252 -0
  6. package/abap/guidelines/04_cds.md +120 -0
  7. package/abap/guidelines/05_classes.md +50 -0
  8. package/abap/guidelines/06_objects.md +103 -0
  9. package/abap/guidelines/07_json.md +22 -0
  10. package/abap/guidelines/08_abapgit.md +193 -0
  11. package/bin/abapgit-agent +597 -44
  12. package/bin/abgagt +24 -0
  13. package/package.json +11 -3
  14. package/src/abap-client.js +65 -2
  15. package/src/agent.js +58 -4
  16. package/src/config.js +9 -2
  17. package/src/ref-search.js +989 -0
  18. package/.abapGitAgent.example +0 -11
  19. package/.github/workflows/release.yml +0 -57
  20. package/API.md +0 -710
  21. package/CLAUDE.md +0 -1031
  22. package/CLAUDE_MEM.md +0 -88
  23. package/ERROR_HANDLING.md +0 -30
  24. package/INSTALL.md +0 -155
  25. package/RELEASE_NOTES.md +0 -143
  26. package/abap/CLAUDE.md +0 -898
  27. package/abap/copilot-instructions.md +0 -79
  28. package/abap/package.devc.xml +0 -10
  29. package/abap/zcl_abgagt_agent.clas.abap +0 -420
  30. package/abap/zcl_abgagt_agent.clas.xml +0 -15
  31. package/abap/zcl_abgagt_cmd_factory.clas.abap +0 -48
  32. package/abap/zcl_abgagt_cmd_factory.clas.xml +0 -15
  33. package/abap/zcl_abgagt_command_create.clas.abap +0 -95
  34. package/abap/zcl_abgagt_command_create.clas.xml +0 -15
  35. package/abap/zcl_abgagt_command_import.clas.abap +0 -138
  36. package/abap/zcl_abgagt_command_import.clas.xml +0 -15
  37. package/abap/zcl_abgagt_command_inspect.clas.abap +0 -411
  38. package/abap/zcl_abgagt_command_inspect.clas.testclasses.abap +0 -121
  39. package/abap/zcl_abgagt_command_inspect.clas.xml +0 -16
  40. package/abap/zcl_abgagt_command_preview.clas.abap +0 -386
  41. package/abap/zcl_abgagt_command_preview.clas.xml +0 -15
  42. package/abap/zcl_abgagt_command_pull.clas.abap +0 -80
  43. package/abap/zcl_abgagt_command_pull.clas.testclasses.abap +0 -87
  44. package/abap/zcl_abgagt_command_pull.clas.xml +0 -16
  45. package/abap/zcl_abgagt_command_tree.clas.abap +0 -237
  46. package/abap/zcl_abgagt_command_tree.clas.xml +0 -15
  47. package/abap/zcl_abgagt_command_unit.clas.abap +0 -297
  48. package/abap/zcl_abgagt_command_unit.clas.xml +0 -15
  49. package/abap/zcl_abgagt_command_view.clas.abap +0 -240
  50. package/abap/zcl_abgagt_command_view.clas.xml +0 -15
  51. package/abap/zcl_abgagt_resource_create.clas.abap +0 -71
  52. package/abap/zcl_abgagt_resource_create.clas.xml +0 -15
  53. package/abap/zcl_abgagt_resource_health.clas.abap +0 -25
  54. package/abap/zcl_abgagt_resource_health.clas.xml +0 -15
  55. package/abap/zcl_abgagt_resource_import.clas.abap +0 -66
  56. package/abap/zcl_abgagt_resource_import.clas.xml +0 -15
  57. package/abap/zcl_abgagt_resource_inspect.clas.abap +0 -62
  58. package/abap/zcl_abgagt_resource_inspect.clas.xml +0 -15
  59. package/abap/zcl_abgagt_resource_preview.clas.abap +0 -67
  60. package/abap/zcl_abgagt_resource_preview.clas.xml +0 -15
  61. package/abap/zcl_abgagt_resource_pull.clas.abap +0 -71
  62. package/abap/zcl_abgagt_resource_pull.clas.xml +0 -15
  63. package/abap/zcl_abgagt_resource_tree.clas.abap +0 -70
  64. package/abap/zcl_abgagt_resource_tree.clas.xml +0 -15
  65. package/abap/zcl_abgagt_resource_unit.clas.abap +0 -64
  66. package/abap/zcl_abgagt_resource_unit.clas.xml +0 -15
  67. package/abap/zcl_abgagt_resource_view.clas.abap +0 -68
  68. package/abap/zcl_abgagt_resource_view.clas.xml +0 -15
  69. package/abap/zcl_abgagt_rest_handler.clas.abap +0 -32
  70. package/abap/zcl_abgagt_rest_handler.clas.xml +0 -15
  71. package/abap/zcl_abgagt_util.clas.abap +0 -93
  72. package/abap/zcl_abgagt_util.clas.testclasses.abap +0 -84
  73. package/abap/zcl_abgagt_util.clas.xml +0 -16
  74. package/abap/zcl_abgagt_viewer_clas.clas.abap +0 -58
  75. package/abap/zcl_abgagt_viewer_clas.clas.xml +0 -15
  76. package/abap/zcl_abgagt_viewer_ddls.clas.abap +0 -83
  77. package/abap/zcl_abgagt_viewer_ddls.clas.xml +0 -15
  78. package/abap/zcl_abgagt_viewer_dtel.clas.abap +0 -98
  79. package/abap/zcl_abgagt_viewer_dtel.clas.xml +0 -15
  80. package/abap/zcl_abgagt_viewer_factory.clas.abap +0 -41
  81. package/abap/zcl_abgagt_viewer_factory.clas.xml +0 -15
  82. package/abap/zcl_abgagt_viewer_intf.clas.abap +0 -58
  83. package/abap/zcl_abgagt_viewer_intf.clas.xml +0 -15
  84. package/abap/zcl_abgagt_viewer_stru.clas.abap +0 -59
  85. package/abap/zcl_abgagt_viewer_stru.clas.xml +0 -15
  86. package/abap/zcl_abgagt_viewer_tabl.clas.abap +0 -59
  87. package/abap/zcl_abgagt_viewer_tabl.clas.xml +0 -15
  88. package/abap/zcl_abgagt_viewer_ttyp.clas.abap +0 -93
  89. package/abap/zcl_abgagt_viewer_ttyp.clas.xml +0 -15
  90. package/abap/zif_abgagt_agent.intf.abap +0 -53
  91. package/abap/zif_abgagt_agent.intf.xml +0 -15
  92. package/abap/zif_abgagt_cmd_factory.intf.abap +0 -7
  93. package/abap/zif_abgagt_cmd_factory.intf.xml +0 -15
  94. package/abap/zif_abgagt_command.intf.abap +0 -26
  95. package/abap/zif_abgagt_command.intf.xml +0 -15
  96. package/abap/zif_abgagt_util.intf.abap +0 -28
  97. package/abap/zif_abgagt_util.intf.xml +0 -15
  98. package/abap/zif_abgagt_viewer.intf.abap +0 -12
  99. package/abap/zif_abgagt_viewer.intf.xml +0 -15
  100. package/docs/commands.md +0 -142
  101. package/docs/create-command.md +0 -129
  102. package/docs/health-command.md +0 -89
  103. package/docs/import-command.md +0 -195
  104. package/docs/init-command.md +0 -189
  105. package/docs/inspect-command.md +0 -158
  106. package/docs/preview-command.md +0 -528
  107. package/docs/pull-command.md +0 -188
  108. package/docs/status-command.md +0 -68
  109. package/docs/tree-command.md +0 -303
  110. package/docs/unit-command.md +0 -167
  111. package/docs/view-command.md +0 -501
  112. package/img/claude.png +0 -0
  113. package/scripts/claude-integration.js +0 -351
  114. package/scripts/release.sh +0 -60
  115. package/scripts/test-integration.js +0 -139
@@ -1,83 +0,0 @@
1
- *"*"use source
2
- *"*"Local Interface:
3
- *"**********************************************************************
4
- CLASS zcl_abgagt_viewer_ddls DEFINITION PUBLIC FINAL CREATE PUBLIC.
5
-
6
- PUBLIC SECTION.
7
- INTERFACES zif_abgagt_viewer.
8
-
9
- ENDCLASS.
10
-
11
- CLASS zcl_abgagt_viewer_ddls IMPLEMENTATION.
12
-
13
- METHOD zif_abgagt_viewer~get_info.
14
- DATA: lv_ddls_name TYPE ddlname,
15
- lo_handler TYPE REF TO if_dd_ddl_handler,
16
- ls_ddlsrcv TYPE ddddlsrcv,
17
- lv_devclass TYPE tadir-devclass,
18
- lv_found TYPE abap_bool.
19
-
20
- rs_info-name = iv_name.
21
- rs_info-type = 'DDLS'.
22
- rs_info-type_text = 'CDS View'.
23
-
24
- " Get package from TADIR
25
- SELECT SINGLE devclass FROM tadir
26
- INTO lv_devclass
27
- WHERE obj_name = iv_name
28
- AND object = 'DDLS'.
29
- IF sy-subrc = 0.
30
- rs_info-description = |CDS View { iv_name } in { lv_devclass }|.
31
- ELSE.
32
- rs_info-not_found = abap_true.
33
- RETURN.
34
- ENDIF.
35
-
36
- " Use DDL handler to read CDS view source
37
- lo_handler = cl_dd_ddl_handler_factory=>create( ).
38
- lv_ddls_name = iv_name.
39
-
40
- " First try to read inactive version (get_state = 'M')
41
- TRY.
42
- lo_handler->read(
43
- EXPORTING
44
- name = lv_ddls_name
45
- get_state = 'M'
46
- IMPORTING
47
- ddddlsrcv_wa = ls_ddlsrcv ).
48
-
49
- IF ls_ddlsrcv-source IS NOT INITIAL.
50
- lv_found = abap_true.
51
- ENDIF.
52
-
53
- CATCH cx_dd_ddl_check.
54
- " Ignore - will try active version
55
- ENDTRY.
56
-
57
- " If no inactive version, try active version
58
- IF lv_found = abap_false.
59
- TRY.
60
- lo_handler->read(
61
- EXPORTING
62
- name = lv_ddls_name
63
- get_state = 'A'
64
- IMPORTING
65
- ddddlsrcv_wa = ls_ddlsrcv ).
66
-
67
- IF ls_ddlsrcv-source IS NOT INITIAL.
68
- lv_found = abap_true.
69
- ENDIF.
70
- CATCH cx_dd_ddl_check.
71
- " Not found
72
- ENDTRY.
73
- ENDIF.
74
-
75
- " Set source code if found
76
- IF lv_found = abap_true.
77
- rs_info-source = ls_ddlsrcv-source.
78
- ELSE.
79
- rs_info-not_found = abap_true.
80
- ENDIF.
81
- ENDMETHOD.
82
-
83
- ENDCLASS.
@@ -1,15 +0,0 @@
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_DDLS</CLSNAME>
7
- <LANGU>E</LANGU>
8
- <DESCRIPT>Viewer for CDS Views</DESCRIPT>
9
- <EXPOSURE>2</EXPOSURE>
10
- <STATE>1</STATE>
11
- <UNICODE>X</UNICODE>
12
- </VSEOCLASS>
13
- </asx:values>
14
- </asx:abap>
15
- </abapGit>
@@ -1,98 +0,0 @@
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.
@@ -1,15 +0,0 @@
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>
@@ -1,41 +0,0 @@
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.
@@ -1,15 +0,0 @@
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>
@@ -1,58 +0,0 @@
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.
@@ -1,15 +0,0 @@
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>
@@ -1,59 +0,0 @@
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.
@@ -1,15 +0,0 @@
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>
@@ -1,59 +0,0 @@
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.
@@ -1,15 +0,0 @@
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>
@@ -1,93 +0,0 @@
1
- *"*"use source
2
- *"*"Local Interface:
3
- *"**********************************************************************
4
- CLASS zcl_abgagt_viewer_ttyp DEFINITION PUBLIC FINAL CREATE PUBLIC.
5
-
6
- PUBLIC SECTION.
7
- INTERFACES zif_abgagt_viewer.
8
-
9
- ENDCLASS.
10
-
11
- CLASS zcl_abgagt_viewer_ttyp 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_linetype TYPE string,
17
- lv_tabprottype TYPE string,
18
- lv_keydef TYPE string,
19
- lv_access_mode TYPE string,
20
- lv_key_definition TYPE string.
21
-
22
- rs_info-name = iv_name.
23
- rs_info-type = 'TTYP'.
24
- rs_info-type_text = 'Table Type'.
25
-
26
- " Get package from TADIR
27
- SELECT SINGLE obj_name devclass FROM tadir
28
- INTO (lv_obj_name, lv_devclass)
29
- WHERE obj_name = iv_name
30
- AND object = 'TTYP'.
31
- IF sy-subrc = 0.
32
- rs_info-description = |Table Type { iv_name } in { lv_devclass }|.
33
- ELSE.
34
- rs_info-not_found = abap_true.
35
- ENDIF.
36
-
37
- " Get TTYP details from DD40L
38
- SELECT SINGLE rowtype accessmode keydef FROM dd40l
39
- INTO (lv_linetype, lv_tabprottype, lv_keydef)
40
- WHERE typename = iv_name
41
- AND as4local = 'A'.
42
-
43
- " Build components table with TTYP details
44
- IF lv_linetype IS NOT INITIAL.
45
- APPEND VALUE #(
46
- field = 'LINE_TYPE'
47
- key = abap_false
48
- type = 'CHAR'
49
- length = 30
50
- dataelement = ''
51
- description = |Line Type: { lv_linetype }|
52
- ) TO rs_info-components.
53
- ENDIF.
54
-
55
- " Convert access mode to text
56
- CASE lv_tabprottype.
57
- WHEN 'T'. lv_access_mode = 'STANDARD'.
58
- WHEN 'S'. lv_access_mode = 'SORTED'.
59
- WHEN 'H'. lv_access_mode = 'HASHED'.
60
- WHEN OTHERS. lv_access_mode = lv_tabprottype.
61
- ENDCASE.
62
-
63
- IF lv_access_mode IS NOT INITIAL.
64
- APPEND VALUE #(
65
- field = 'ACCESS_MODE'
66
- key = abap_false
67
- type = 'CHAR'
68
- length = 10
69
- dataelement = ''
70
- description = |Access Mode: { lv_access_mode }|
71
- ) TO rs_info-components.
72
- ENDIF.
73
-
74
- " Convert key definition to text
75
- CASE lv_keydef.
76
- WHEN 'D'. lv_key_definition = 'WITH KEY'.
77
- WHEN 'N'. lv_key_definition = 'NO KEY'.
78
- WHEN OTHERS. lv_key_definition = lv_keydef.
79
- ENDCASE.
80
-
81
- IF lv_key_definition IS NOT INITIAL.
82
- APPEND VALUE #(
83
- field = 'KEY_DEFINITION'
84
- key = abap_false
85
- type = 'CHAR'
86
- length = 10
87
- dataelement = ''
88
- description = |Key Definition: { lv_key_definition }|
89
- ) TO rs_info-components.
90
- ENDIF.
91
- ENDMETHOD.
92
-
93
- ENDCLASS.
@@ -1,15 +0,0 @@
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_TTYP</CLSNAME>
7
- <LANGU>E</LANGU>
8
- <DESCRIPT>Viewer for ABAP Table Types</DESCRIPT>
9
- <EXPOSURE>2</EXPOSURE>
10
- <STATE>1</STATE>
11
- <UNICODE>X</UNICODE>
12
- </VSEOCLASS>
13
- </asx:values>
14
- </asx:abap>
15
- </abapGit>
@@ -1,53 +0,0 @@
1
- " Interface for abapGit Agent - handles pull operations only.
2
- " Note: inspect and run_tests are implemented in separate command classes
3
- " (zcl_abgagt_command_inspect, zcl_abgagt_command_unit) using ABAP standard classes.
4
-
5
- INTERFACE zif_abgagt_agent PUBLIC.
6
-
7
- TYPES: BEGIN OF ty_object,
8
- type TYPE string,
9
- id TYPE string,
10
- number TYPE string,
11
- text TYPE string,
12
- obj_type TYPE string,
13
- obj_name TYPE string,
14
- exception TYPE string,
15
- END OF ty_object.
16
-
17
- TYPES: ty_object_list TYPE STANDARD TABLE OF ty_object WITH NON-UNIQUE DEFAULT KEY.
18
-
19
- TYPES: BEGIN OF ty_result,
20
- success TYPE abap_bool,
21
- job_id TYPE string,
22
- message TYPE string,
23
- error_detail TYPE string,
24
- transport_request TYPE string,
25
- activated_count TYPE i,
26
- failed_count TYPE i,
27
- log_messages TYPE ty_object_list,
28
- activated_objects TYPE ty_object_list,
29
- failed_objects TYPE ty_object_list,
30
- started_at TYPE timestampl,
31
- finished_at TYPE timestampl,
32
- END OF ty_result.
33
-
34
- METHODS pull
35
- IMPORTING
36
- iv_url TYPE string
37
- iv_branch TYPE string DEFAULT 'main'
38
- iv_username TYPE string OPTIONAL
39
- iv_password TYPE string OPTIONAL
40
- iv_transport_request TYPE string OPTIONAL
41
- it_files TYPE string_table OPTIONAL
42
- RETURNING
43
- VALUE(rs_result) TYPE ty_result
44
- RAISING
45
- zcx_abapgit_exception.
46
-
47
- METHODS get_repo_status
48
- IMPORTING
49
- iv_url TYPE string
50
- RETURNING
51
- VALUE(rv_status) TYPE string.
52
-
53
- ENDINTERFACE.
@@ -1,15 +0,0 @@
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_AGENT</CLSNAME>
7
- <LANGU>E</LANGU>
8
- <DESCRIPT>Interface for ABAP Git Agent</DESCRIPT>
9
- <EXPOSURE>2</EXPOSURE>
10
- <STATE>1</STATE>
11
- <UNICODE>X</UNICODE>
12
- </VSEOINTERF>
13
- </asx:values>
14
- </asx:abap>
15
- </abapGit>
@@ -1,7 +0,0 @@
1
- "* Use this source text module for the interface definition
2
- "! <p class="shorttext synchronized">Command Factory Interface for ABAP Git Agent</p>
3
- INTERFACE zif_abgagt_cmd_factory PUBLIC.
4
- METHODS get_command
5
- IMPORTING iv_command TYPE string
6
- RETURNING VALUE(ro_command) TYPE REF TO zif_abgagt_command.
7
- ENDINTERFACE.