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.
- package/README.md +2 -0
- package/abap/guidelines/00_index.md +35 -0
- package/abap/guidelines/01_sql.md +72 -0
- package/abap/guidelines/02_exceptions.md +108 -0
- package/abap/guidelines/03_testing.md +252 -0
- package/abap/guidelines/04_cds.md +120 -0
- package/abap/guidelines/05_classes.md +50 -0
- package/abap/guidelines/06_objects.md +103 -0
- package/abap/guidelines/07_json.md +22 -0
- package/abap/guidelines/08_abapgit.md +193 -0
- package/bin/abapgit-agent +597 -44
- package/bin/abgagt +24 -0
- package/package.json +11 -3
- package/src/abap-client.js +65 -2
- package/src/agent.js +58 -4
- package/src/config.js +9 -2
- package/src/ref-search.js +989 -0
- package/.abapGitAgent.example +0 -11
- package/.github/workflows/release.yml +0 -57
- package/API.md +0 -710
- package/CLAUDE.md +0 -1031
- package/CLAUDE_MEM.md +0 -88
- package/ERROR_HANDLING.md +0 -30
- package/INSTALL.md +0 -155
- package/RELEASE_NOTES.md +0 -143
- package/abap/CLAUDE.md +0 -898
- package/abap/copilot-instructions.md +0 -79
- package/abap/package.devc.xml +0 -10
- package/abap/zcl_abgagt_agent.clas.abap +0 -420
- package/abap/zcl_abgagt_agent.clas.xml +0 -15
- package/abap/zcl_abgagt_cmd_factory.clas.abap +0 -48
- package/abap/zcl_abgagt_cmd_factory.clas.xml +0 -15
- package/abap/zcl_abgagt_command_create.clas.abap +0 -95
- package/abap/zcl_abgagt_command_create.clas.xml +0 -15
- package/abap/zcl_abgagt_command_import.clas.abap +0 -138
- package/abap/zcl_abgagt_command_import.clas.xml +0 -15
- package/abap/zcl_abgagt_command_inspect.clas.abap +0 -411
- package/abap/zcl_abgagt_command_inspect.clas.testclasses.abap +0 -121
- package/abap/zcl_abgagt_command_inspect.clas.xml +0 -16
- package/abap/zcl_abgagt_command_preview.clas.abap +0 -386
- package/abap/zcl_abgagt_command_preview.clas.xml +0 -15
- package/abap/zcl_abgagt_command_pull.clas.abap +0 -80
- package/abap/zcl_abgagt_command_pull.clas.testclasses.abap +0 -87
- package/abap/zcl_abgagt_command_pull.clas.xml +0 -16
- package/abap/zcl_abgagt_command_tree.clas.abap +0 -237
- package/abap/zcl_abgagt_command_tree.clas.xml +0 -15
- package/abap/zcl_abgagt_command_unit.clas.abap +0 -297
- package/abap/zcl_abgagt_command_unit.clas.xml +0 -15
- package/abap/zcl_abgagt_command_view.clas.abap +0 -240
- package/abap/zcl_abgagt_command_view.clas.xml +0 -15
- package/abap/zcl_abgagt_resource_create.clas.abap +0 -71
- package/abap/zcl_abgagt_resource_create.clas.xml +0 -15
- package/abap/zcl_abgagt_resource_health.clas.abap +0 -25
- package/abap/zcl_abgagt_resource_health.clas.xml +0 -15
- package/abap/zcl_abgagt_resource_import.clas.abap +0 -66
- package/abap/zcl_abgagt_resource_import.clas.xml +0 -15
- package/abap/zcl_abgagt_resource_inspect.clas.abap +0 -62
- package/abap/zcl_abgagt_resource_inspect.clas.xml +0 -15
- package/abap/zcl_abgagt_resource_preview.clas.abap +0 -67
- package/abap/zcl_abgagt_resource_preview.clas.xml +0 -15
- package/abap/zcl_abgagt_resource_pull.clas.abap +0 -71
- package/abap/zcl_abgagt_resource_pull.clas.xml +0 -15
- package/abap/zcl_abgagt_resource_tree.clas.abap +0 -70
- package/abap/zcl_abgagt_resource_tree.clas.xml +0 -15
- package/abap/zcl_abgagt_resource_unit.clas.abap +0 -64
- package/abap/zcl_abgagt_resource_unit.clas.xml +0 -15
- package/abap/zcl_abgagt_resource_view.clas.abap +0 -68
- package/abap/zcl_abgagt_resource_view.clas.xml +0 -15
- package/abap/zcl_abgagt_rest_handler.clas.abap +0 -32
- package/abap/zcl_abgagt_rest_handler.clas.xml +0 -15
- package/abap/zcl_abgagt_util.clas.abap +0 -93
- package/abap/zcl_abgagt_util.clas.testclasses.abap +0 -84
- package/abap/zcl_abgagt_util.clas.xml +0 -16
- package/abap/zcl_abgagt_viewer_clas.clas.abap +0 -58
- package/abap/zcl_abgagt_viewer_clas.clas.xml +0 -15
- package/abap/zcl_abgagt_viewer_ddls.clas.abap +0 -83
- package/abap/zcl_abgagt_viewer_ddls.clas.xml +0 -15
- package/abap/zcl_abgagt_viewer_dtel.clas.abap +0 -98
- package/abap/zcl_abgagt_viewer_dtel.clas.xml +0 -15
- package/abap/zcl_abgagt_viewer_factory.clas.abap +0 -41
- package/abap/zcl_abgagt_viewer_factory.clas.xml +0 -15
- package/abap/zcl_abgagt_viewer_intf.clas.abap +0 -58
- package/abap/zcl_abgagt_viewer_intf.clas.xml +0 -15
- package/abap/zcl_abgagt_viewer_stru.clas.abap +0 -59
- package/abap/zcl_abgagt_viewer_stru.clas.xml +0 -15
- package/abap/zcl_abgagt_viewer_tabl.clas.abap +0 -59
- package/abap/zcl_abgagt_viewer_tabl.clas.xml +0 -15
- package/abap/zcl_abgagt_viewer_ttyp.clas.abap +0 -93
- package/abap/zcl_abgagt_viewer_ttyp.clas.xml +0 -15
- package/abap/zif_abgagt_agent.intf.abap +0 -53
- package/abap/zif_abgagt_agent.intf.xml +0 -15
- package/abap/zif_abgagt_cmd_factory.intf.abap +0 -7
- package/abap/zif_abgagt_cmd_factory.intf.xml +0 -15
- package/abap/zif_abgagt_command.intf.abap +0 -26
- package/abap/zif_abgagt_command.intf.xml +0 -15
- package/abap/zif_abgagt_util.intf.abap +0 -28
- package/abap/zif_abgagt_util.intf.xml +0 -15
- package/abap/zif_abgagt_viewer.intf.abap +0 -12
- package/abap/zif_abgagt_viewer.intf.xml +0 -15
- package/docs/commands.md +0 -142
- package/docs/create-command.md +0 -129
- package/docs/health-command.md +0 -89
- package/docs/import-command.md +0 -195
- package/docs/init-command.md +0 -189
- package/docs/inspect-command.md +0 -158
- package/docs/preview-command.md +0 -528
- package/docs/pull-command.md +0 -188
- package/docs/status-command.md +0 -68
- package/docs/tree-command.md +0 -303
- package/docs/unit-command.md +0 -167
- package/docs/view-command.md +0 -501
- package/img/claude.png +0 -0
- package/scripts/claude-integration.js +0 -351
- package/scripts/release.sh +0 -60
- package/scripts/test-integration.js +0 -139
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# ABAP Objects
|
|
2
|
+
|
|
3
|
+
## Creating New ABAP Objects - XML Metadata Required
|
|
4
|
+
|
|
5
|
+
**CRITICAL CHECKLIST - Never Forget!**
|
|
6
|
+
|
|
7
|
+
When creating ANY new ABAP object file, you MUST also create its XML metadata file:
|
|
8
|
+
|
|
9
|
+
| ABAP File | Required XML File |
|
|
10
|
+
|-----------|------------------|
|
|
11
|
+
| `zcl_my_class.clas.abap` | `zcl_my_class.clas.xml` |
|
|
12
|
+
| `zif_my_intf.intf.abap` | `zif_my_intf.intf.xml` |
|
|
13
|
+
|
|
14
|
+
**Without XML files**, abapGit will NOT recognize the objects during pull, and they won't be activated.
|
|
15
|
+
|
|
16
|
+
### XML Metadata Format for CLAS
|
|
17
|
+
|
|
18
|
+
For `zcl_abgagt_util.clas.abap`, create `zcl_abgagt_util.clas.xml`:
|
|
19
|
+
|
|
20
|
+
```xml
|
|
21
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
22
|
+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
|
23
|
+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
24
|
+
<asx:values>
|
|
25
|
+
<VSEOCLASS>
|
|
26
|
+
<CLSNAME>ZCL_ABGAGT_UTIL</CLSNAME>
|
|
27
|
+
<LANGU>E</LANGU>
|
|
28
|
+
<DESCRIPT>Description</DESCRIPT>
|
|
29
|
+
<EXPOSURE>2</EXPOSURE>
|
|
30
|
+
<STATE>1</STATE>
|
|
31
|
+
<UNICODE>X</UNICODE>
|
|
32
|
+
</VSEOCLASS>
|
|
33
|
+
</asx:values>
|
|
34
|
+
</asx:abap>
|
|
35
|
+
</abapGit>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### XML Metadata Format for INTF
|
|
39
|
+
|
|
40
|
+
For `zif_abgagt_util.intf.abap`, create `zif_abgagt_util.intf.xml`:
|
|
41
|
+
|
|
42
|
+
```xml
|
|
43
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
44
|
+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
|
45
|
+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
46
|
+
<asx:values>
|
|
47
|
+
<VSEOINTERF>
|
|
48
|
+
<CLSNAME>ZIF_ABGAGT_UTIL</CLSNAME>
|
|
49
|
+
<LANGU>E</LANGU>
|
|
50
|
+
<DESCRIPT>Description</DESCRIPT>
|
|
51
|
+
<EXPOSURE>2</EXPOSURE>
|
|
52
|
+
<STATE>1</STATE>
|
|
53
|
+
<UNICODE>X</UNICODE>
|
|
54
|
+
</VSEOINTERF>
|
|
55
|
+
</asx:values>
|
|
56
|
+
</asx:abap>
|
|
57
|
+
</abapGit>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Important Notes
|
|
61
|
+
|
|
62
|
+
1. **CRITICAL: Push to git BEFORE pulling into ABAP**
|
|
63
|
+
- Always commit and push ABAP files to git first
|
|
64
|
+
- Then run `abapgit-agent pull` to activate in ABAP
|
|
65
|
+
- Never run `abapgit-agent pull` without pushing changes first
|
|
66
|
+
|
|
67
|
+
2. **Only pull ABAP files** - The XML metadata stays in git:
|
|
68
|
+
```bash
|
|
69
|
+
abapgit-agent pull --files zcl_my_class.clas.abap
|
|
70
|
+
```
|
|
71
|
+
3. abapGit reads the XML from git to deserialize the ABAP code
|
|
72
|
+
4. XML files are NOT activated in ABAP - they are only for abapGit
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# After making changes to ABAP files
|
|
76
|
+
git add .
|
|
77
|
+
git commit -m "Describe changes"
|
|
78
|
+
git push # CRITICAL: Push BEFORE pulling
|
|
79
|
+
|
|
80
|
+
# Then validate in ABAP system (single file - fast)
|
|
81
|
+
abapgit-agent pull --files abap/zcl_my_class.clas.abap
|
|
82
|
+
|
|
83
|
+
# Or validate all files
|
|
84
|
+
abapgit-agent pull
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Naming Conventions
|
|
88
|
+
|
|
89
|
+
- Use `Z_` or `Y_` prefix for custom objects
|
|
90
|
+
- Class names: `ZCL_<NAME>`
|
|
91
|
+
- Interface names: `ZIF_<NAME>`
|
|
92
|
+
- Programs: `Z<NAME>`
|
|
93
|
+
- Package: `$<PROJECT_NAME>`
|
|
94
|
+
|
|
95
|
+
## ABAP Object Types
|
|
96
|
+
|
|
97
|
+
Common object types in this project:
|
|
98
|
+
- `CLAS` - Classes
|
|
99
|
+
- `PROG` - Programs
|
|
100
|
+
- `FUGR` - Function Groups
|
|
101
|
+
- `INTF` - Interfaces
|
|
102
|
+
- `TABL` - Tables
|
|
103
|
+
- `DDLS` - Data Definitions
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# JSON Handling
|
|
2
|
+
|
|
3
|
+
**CRITICAL**: Always use `/ui2/cl_json` for JSON serialization and deserialization.
|
|
4
|
+
|
|
5
|
+
## Correct Usage
|
|
6
|
+
|
|
7
|
+
```abap
|
|
8
|
+
" Deserialize JSON to ABAP structure
|
|
9
|
+
DATA ls_data TYPE ty_request.
|
|
10
|
+
ls_data = /ui2/cl_json=>deserialize( json = lv_json ).
|
|
11
|
+
|
|
12
|
+
" Serialize ABAP structure to JSON
|
|
13
|
+
lv_json = /ui2/cl_json=>serialize( data = ls_response ).
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Never Use
|
|
17
|
+
|
|
18
|
+
- Manual string operations (CONCATENATE, SPLIT, etc.)
|
|
19
|
+
- String templates for complex structures
|
|
20
|
+
- Direct assignment without /ui2/cl_json
|
|
21
|
+
|
|
22
|
+
This is enforced by ABAP - manual string operations for JSON parsing will cause type conflicts.
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# abapGit Object XML Metadata
|
|
2
|
+
|
|
3
|
+
Each ABAP object requires an XML metadata file for abapGit to understand how to serialize/deserialize it. This guide provides templates for common object types.
|
|
4
|
+
|
|
5
|
+
## Why XML Metadata?
|
|
6
|
+
|
|
7
|
+
abapGit needs XML files to:
|
|
8
|
+
- Know the object type and serializer to use
|
|
9
|
+
- Store object attributes (description, exposure, state, etc.)
|
|
10
|
+
- Handle object-specific configurations
|
|
11
|
+
|
|
12
|
+
## Object Types and XML Templates
|
|
13
|
+
|
|
14
|
+
### Class (CLAS)
|
|
15
|
+
|
|
16
|
+
**Filename**: `src/zcl_my_class.clas.xml`
|
|
17
|
+
|
|
18
|
+
```xml
|
|
19
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
20
|
+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
|
21
|
+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
22
|
+
<asx:values>
|
|
23
|
+
<VSEOCLASS>
|
|
24
|
+
<CLSNAME>ZCL_MY_CLASS</CLSNAME>
|
|
25
|
+
<LANGU>E</LANGU>
|
|
26
|
+
<DESCRIPT>Description of the class</DESCRIPT>
|
|
27
|
+
<EXPOSURE>2</EXPOSURE>
|
|
28
|
+
<STATE>1</STATE>
|
|
29
|
+
<UNICODE>X</UNICODE>
|
|
30
|
+
</VSEOCLASS>
|
|
31
|
+
</asx:values>
|
|
32
|
+
</asx:abap>
|
|
33
|
+
</abapGit>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Key Fields**:
|
|
37
|
+
- `CLSNAME`: Class name (must match filename)
|
|
38
|
+
- `DESCRIPT`: Class description
|
|
39
|
+
- `EXPOSURE`: Exposure (2 = Public, 3 = Protected, 4 = Private)
|
|
40
|
+
- `STATE`: State (1 = Active)
|
|
41
|
+
- `UNICODE`: Unicode encoding (X = Yes)
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
### Interface (INTF)
|
|
46
|
+
|
|
47
|
+
**Filename**: `src/zif_my_interface.intf.xml`
|
|
48
|
+
|
|
49
|
+
```xml
|
|
50
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
51
|
+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
|
52
|
+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
53
|
+
<asx:values>
|
|
54
|
+
<VSEOINTERF>
|
|
55
|
+
<CLSNAME>ZIF_MY_INTERFACE</CLSNAME>
|
|
56
|
+
<LANGU>E</LANGU>
|
|
57
|
+
<DESCRIPT>Description of the interface</DESCRIPT>
|
|
58
|
+
<EXPOSURE>2</EXPOSURE>
|
|
59
|
+
<STATE>1</STATE>
|
|
60
|
+
<UNICODE>X</UNICODE>
|
|
61
|
+
</VSEOINTERF>
|
|
62
|
+
</asx:values>
|
|
63
|
+
</asx:abap>
|
|
64
|
+
</abapGit>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
### Program (PROG)
|
|
70
|
+
|
|
71
|
+
**Filename**: `src/zmy_program.prog.xml`
|
|
72
|
+
|
|
73
|
+
```xml
|
|
74
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
75
|
+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
|
76
|
+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
77
|
+
<asx:values>
|
|
78
|
+
<PROGDIR>
|
|
79
|
+
<NAME>ZMY_PROGRAM</NAME>
|
|
80
|
+
<SUBC>I</SUBC>
|
|
81
|
+
<RLOAD>E</RLOAD>
|
|
82
|
+
<FIXPT>X</FIXPT>
|
|
83
|
+
<UCCHECK>X</UCCHECK>
|
|
84
|
+
</PROGDIR>
|
|
85
|
+
</asx:values>
|
|
86
|
+
</asx:abap>
|
|
87
|
+
</abapGit>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Key Fields**:
|
|
91
|
+
- `NAME`: Program name
|
|
92
|
+
- `SUBC`: Subc (I = Include, 1 = Executable, F = Function Group, M = Module Pool, S = Subroutine Pool)
|
|
93
|
+
- `RLOAD`: Rload (E = External, I = Internal)
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
### Table (TABL)
|
|
98
|
+
|
|
99
|
+
**Filename**: `src/zmy_table.tabl.xml`
|
|
100
|
+
|
|
101
|
+
```xml
|
|
102
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
103
|
+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_TABL" serializer_version="v1.0.0">
|
|
104
|
+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
105
|
+
<asx:values>
|
|
106
|
+
<DD02V>
|
|
107
|
+
<TABNAME>ZMY_TABLE</TABNAME>
|
|
108
|
+
<DDLANGUAGE>E</DDLANGUAGE>
|
|
109
|
+
<TABCLASS>TRANSP</TABCLASS>
|
|
110
|
+
<DDTEXT>Description of the table</DDTEXT>
|
|
111
|
+
<CONTFLAG>A</CONTFLAG>
|
|
112
|
+
</DD02V>
|
|
113
|
+
</asx:values>
|
|
114
|
+
</asx:abap>
|
|
115
|
+
</abapGit>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Key Fields**:
|
|
119
|
+
- `TABNAME`: Table name
|
|
120
|
+
- `DDTEXT`: Description (NOT DESCRIPT)
|
|
121
|
+
- `TABCLASS`: Table class (TRANSP = Transparent)
|
|
122
|
+
- `CONTFLAG`: Delivery class (A = Application table)
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
### CDS View (DDLS)
|
|
127
|
+
|
|
128
|
+
**Filename**: `src/zc_my_view.ddls.xml`
|
|
129
|
+
|
|
130
|
+
```xml
|
|
131
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
132
|
+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DDLS" serializer_version="v1.0.0">
|
|
133
|
+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
134
|
+
<asx:values>
|
|
135
|
+
<DDLS>
|
|
136
|
+
<DDLNAME>ZC_MY_VIEW</DDLNAME>
|
|
137
|
+
<DDLANGUAGE>E</DDLANGUAGE>
|
|
138
|
+
<DDTEXT>My CDS View</DDTEXT>
|
|
139
|
+
<SOURCE_TYPE>V</SOURCE_TYPE>
|
|
140
|
+
</DDLS>
|
|
141
|
+
</asx:values>
|
|
142
|
+
</asx:abap>
|
|
143
|
+
</abapGit>
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Key Points for CDS Views**:
|
|
147
|
+
1. **ABAP file extension**: Use `.ddls.asddls` (NOT `.ddls.abap`)
|
|
148
|
+
2. **XML file**: Use `.ddls.xml`
|
|
149
|
+
3. **DDLNAME**: Must match the CDS view name in the source
|
|
150
|
+
4. **SOURCE_TYPE**: V = View, C = Consumption
|
|
151
|
+
5. **Serializer**: Use `LCL_OBJECT_DDLS`
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
### Data Element (DTEL)
|
|
156
|
+
|
|
157
|
+
**Filename**: `src/zmy_dtel.dtel.xml`
|
|
158
|
+
|
|
159
|
+
```xml
|
|
160
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
161
|
+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DTEL" serializer_version="v1.0.0">
|
|
162
|
+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
163
|
+
<asx:values>
|
|
164
|
+
<DD04V>
|
|
165
|
+
<ROLLNAME>ZMY_DTEL</ROLLNAME>
|
|
166
|
+
<DDLANGUAGE>E</DDLANGUAGE>
|
|
167
|
+
<DDTEXT>Description of data element</DDTEXT>
|
|
168
|
+
<REPTEXT>Description</REPTEXT>
|
|
169
|
+
<SCRTEXT_S>Short</SCRTEXT_S>
|
|
170
|
+
<SCRTEXT_M>Medium</SCRTEXT_M>
|
|
171
|
+
<SCRTEXT_L>Long Description</SCRTEXT_L>
|
|
172
|
+
<DTELMASTER>E</DTELMASTER>
|
|
173
|
+
<DATATYPE>CHAR</DATATYPE>
|
|
174
|
+
<LENG>000010</LENG>
|
|
175
|
+
</DD04V>
|
|
176
|
+
</asx:values>
|
|
177
|
+
</asx:abap>
|
|
178
|
+
</abapGit>
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**Key Fields**:
|
|
182
|
+
- `ROLLNAME`: Data element name
|
|
183
|
+
- `DDTEXT`: Description (NOT DESCRIPT)
|
|
184
|
+
- `DATATYPE`: Data type (CHAR, NUMC, etc.)
|
|
185
|
+
- `LENG`: Length (e.g., 000010 for 10 characters)
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Important Notes
|
|
190
|
+
|
|
191
|
+
1. **ALWAYS push to git BEFORE running pull** - abapGit reads from git
|
|
192
|
+
2. **Check pull output** to verify objects were recognized by abapGit
|
|
193
|
+
3. **Use inspect AFTER pull** to check syntax on objects in ABAP
|