sap-abap-mcp 0.5.0 → 0.7.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/CHANGELOG.md CHANGED
@@ -3,6 +3,66 @@
3
3
  All notable changes to **SAP ABAP MCP** (npm + VS Code extension — same
4
4
  codebase, same version).
5
5
 
6
+ ## 0.7.0 — 2026-05-23
7
+
8
+ ### Added — 6 more DDIC primitives & framework helpers
9
+
10
+ - **`sap_create_shlp`** — Elementary Search Help (SHLP) via
11
+ `DDIF_SHLP_PUT` and activation. Selection method = transparent
12
+ table/view, positional field list with input/output/selection
13
+ flags.
14
+ - **`sap_create_enqu`** — Lock Object (ENQU) via `DDIF_ENQU_PUT`.
15
+ Wraps a primary table with named key fields; lock mode E/S/X/O.
16
+ - **`sap_create_view`** — Classic DDIC view (VIEW, projection type)
17
+ via `DDIF_VIEW_PUT`. Single base table with positional view-field
18
+ ↔ table-field mapping.
19
+ - **`sap_create_msag`** — Message Class (MSAG) via direct
20
+ `T100/T100A/T100T/T100U` maintenance. Bulk-loads a list of
21
+ numbered messages with German master language.
22
+ - **`sap_create_bp`** — Business Partner via
23
+ `BAPI_BUPA_CREATE_FROM_DATA`. Person/Organization/Group categories;
24
+ optional role assignment via `BAPI_BUPA_ROLE_ADD_2`. Auto-commits
25
+ via `BAPI_TRANSACTION_COMMIT`.
26
+ - **`sap_publish_odata`** — Register/publish an OData service in the
27
+ Gateway hub via `/IWFND/CL_MED_SRV_RUNTIME=>register_service` —
28
+ the programmatic equivalent of `/IWFND/MAINT_SERVICE` "Add Service".
29
+
30
+ Tool count: 23 → 29.
31
+
32
+ ## 0.6.0 — 2026-05-22
33
+
34
+ ### Added — DDIC primitives (Domain / DataElement / Structure / Append)
35
+
36
+ - **`sap_create_domain`** — Create or update a DDIC Domain via
37
+ `DDIF_DOMA_PUT` and activate it. Supports single fixed values
38
+ (`values: [{value, description}]`) and fixed-value intervals
39
+ (`intervals: [{low, high, description}]`); auto-sets `valexi='X'`
40
+ when either list is non-empty. Atomic: TADIR registration +
41
+ domain header (`DD01V`) + value table (`DD07V`) + activation in a
42
+ single round-trip.
43
+ - **`sap_create_dtel`** — Create or update a DDIC Data Element via
44
+ `DDIF_DTEL_PUT` and activate it. Required: name, referenced
45
+ `domain`, and the three field labels (short/medium/long); optional
46
+ `header_text`. Domain must exist first (use `sap_create_domain`).
47
+ - **`sap_create_struct`** — Create a standalone DDIC structure
48
+ (`tabclass=INTTAB`) via `DDIF_TABL_PUT`. Same field-list contract
49
+ as `sap_create_table`, but without auto-MANDT and without a
50
+ database table being generated. Use for include structures, RFC
51
+ payload structs, etc.
52
+ - **`sap_create_append`** — Create an append structure
53
+ (`tabclass=APPEND`) attached to an existing parent table. Activates
54
+ both the append and the parent so the parent picks up the new
55
+ fields. Use to extend standard tables (e.g. SAP ICM
56
+ `YYYALL_A_CUST_COND` for custom condition technique fields).
57
+
58
+ Closes the long-standing gap that required falling back to
59
+ hand-crafted `DDIF_*_PUT` calls inside `sap_run_abap` snippets — which
60
+ suffered from `if_oo_adt_classrun~main` compile failures on complex
61
+ nested DDIC structures and from non-atomic partial-failure states
62
+ (e.g. data element activated against a non-existent domain).
63
+
64
+ Tool count: 19 → 23.
65
+
6
66
  ## 0.5.0 — 2026-05-22
7
67
 
8
68
  ### Added
package/README.md CHANGED
@@ -20,20 +20,68 @@ and Claude Desktop on first run, so you don't need to maintain two configs.
20
20
 
21
21
  ## Features
22
22
 
23
- | Tool | Mode | What it does |
24
- | ---------------------- | ----- | --------------------------------------------------------------- |
25
- | `sap_ping` | read | Test the ADT connection. |
26
- | `sap_sql` | read | Run an ABAP-SQL `SELECT` on any table. |
27
- | `sap_table_info` | read | DDIC structure of a table. |
28
- | `sap_read_object` | read | Read source of PROG / CLAS / INTF / FUGR / DDLS. |
29
- | `sap_search_objects` | read | Repository search with type filter. |
30
- | `sap_list_package` | read | List all objects in an ABAP package. |
31
- | `sap_syntax_check` | read | Run the ADT syntax/semantic check. |
32
- | `sap_deploy_program` | write | Create or update an ABAP report. Idempotent. |
33
- | `sap_deploy_class` | write | Create or update an ABAP class. |
34
- | `sap_activate` | write | Activate one object. |
35
- | `sap_delete_object` | write | Delete an object. |
36
- | `sap_run_abap` | write | Run an ABAP snippet via `if_oo_adt_classrun`. |
23
+ **29 tools** covering the full ABAP development lifecycle: read, search,
24
+ deploy, DDIC primitives, framework helpers (OData publish, BP creation),
25
+ RAP, transactions, condition data.
26
+
27
+ ### Read tools (7)
28
+
29
+ | Tool | What it does |
30
+ | ---------------------- | --------------------------------------------------------------- |
31
+ | `sap_ping` | Test the ADT connection. |
32
+ | `sap_sql` | Run an ABAP-SQL `SELECT` on any table. |
33
+ | `sap_table_info` | DDIC structure of a table. |
34
+ | `sap_read_object` | Read source of PROG / CLAS / INTF / FUGR / DDLS. |
35
+ | `sap_search_objects` | Repository search with type filter. |
36
+ | `sap_list_package` | List all objects in an ABAP package. |
37
+ | `sap_syntax_check` | Run the ADT syntax/semantic check. |
38
+
39
+ ### Write tools — Core (5)
40
+
41
+ | Tool | What it does |
42
+ | ---------------------- | --------------------------------------------------------------- |
43
+ | `sap_deploy_program` | Create or update an ABAP report. Idempotent. |
44
+ | `sap_deploy_class` | Create or update an ABAP class. |
45
+ | `sap_activate` | Activate one object. |
46
+ | `sap_delete_object` | Delete an object. |
47
+ | `sap_run_abap` | Run an ABAP snippet via `if_oo_adt_classrun`. |
48
+
49
+ ### Write tools — DDIC primitives (8)
50
+
51
+ | Tool | What it does |
52
+ | ---------------------- | --------------------------------------------------------------- |
53
+ | `sap_create_table` | DDIC transparent table. Auto-prepends MANDT. |
54
+ | `sap_create_struct` | Standalone DDIC structure (`tabclass=INTTAB`). |
55
+ | `sap_create_append` | Append structure attached to an existing parent table. |
56
+ | `sap_create_domain` | DDIC Domain with optional fixed values + intervals. |
57
+ | `sap_create_dtel` | DDIC Data Element referencing an existing domain. |
58
+ | `sap_create_shlp` | Elementary Search Help (selection method = table/view). |
59
+ | `sap_create_enqu` | Lock Object wrapping a primary table with key fields. |
60
+ | `sap_create_view` | Classic DDIC projection view (single base table). |
61
+
62
+ ### Write tools — Framework helpers (4)
63
+
64
+ | Tool | What it does |
65
+ | ---------------------- | --------------------------------------------------------------- |
66
+ | `sap_create_msag` | Message Class (MSAG) with bulk message list. |
67
+ | `sap_create_bp` | Business Partner via `BAPI_BUPA_CREATE_FROM_DATA` + roles. |
68
+ | `sap_create_tcode` | Transaction code (TSTC/TSTCT). Idempotent. |
69
+ | `sap_publish_odata` | Register OData service in Gateway hub (`/IWFND/MAINT_SERVICE`). |
70
+
71
+ ### Write tools — RAP (3)
72
+
73
+ | Tool | What it does |
74
+ | ---------------------- | --------------------------------------------------------------- |
75
+ | `sap_deploy_ddls` | CDS view (DDLS). |
76
+ | `sap_deploy_bdef` | Behavior Definition (BDEF) for RAP. |
77
+ | `sap_deploy_srvd` | Service Definition (SRVD). |
78
+ | `sap_deploy_srvb` | Service Binding (SRVB). |
79
+
80
+ ### Write tools — Data (2)
81
+
82
+ | Tool | What it does |
83
+ | ---------------------- | --------------------------------------------------------------- |
84
+ | `sap_insert_rows` | Bulk-insert rows via internal table + `INSERT FROM TABLE`. |
37
85
 
38
86
  Toggle **SAP ABAP: Toggle Read-Only Mode** to hide all write tools from
39
87
  Copilot.
@@ -116,12 +164,12 @@ For GitHub Copilot Chat or Cursor running inside VS Code 1.99+.
116
164
 
117
165
  ```bash
118
166
  curl -L -o /tmp/sap-abap-mcp.vsix \
119
- https://github.com/Lomtech/sap-abap-vscode-mcp/releases/latest/download/sap-abap-mcp.vsix
167
+ https://github.com/Lomtech/sap-abap-mcp/releases/latest/download/sap-abap-mcp.vsix
120
168
  code --install-extension /tmp/sap-abap-mcp.vsix
121
169
  ```
122
170
 
123
171
  Or manually from
124
- [Releases](https://github.com/Lomtech/sap-abap-vscode-mcp/releases/latest):
172
+ [Releases](https://github.com/Lomtech/sap-abap-mcp/releases/latest):
125
173
  download the `.vsix`, then in VS Code `Cmd+Shift+P` → **Extensions: Install
126
174
  from VSIX...** → pick the file.
127
175
 
@@ -163,7 +211,7 @@ your machine (independent of any MCP client), run this from a directory
163
211
  **other than this repo's source checkout** — see the warning below:
164
212
 
165
213
  ```bash
166
- cd /tmp # any directory that is NOT the sap-abap-vscode-mcp source repo
214
+ cd /tmp # any directory that is NOT the sap-abap-mcp source repo
167
215
  echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"t","version":"1"}}}' \
168
216
  | SAP_HOST="https://sap.example.com:44300" SAP_CLIENT="800" \
169
217
  SAP_USER="YOURUSER" SAP_PASSWORD="yourpassword" SAP_VERIFY_SSL=false \
@@ -288,8 +336,8 @@ subprocess. Sensitive values (`password`) live in OS keychain via
288
336
  ## Development
289
337
 
290
338
  ```bash
291
- git clone https://github.com/Lomtech/sap-abap-vscode-mcp.git
292
- cd sap-abap-vscode-mcp
339
+ git clone https://github.com/Lomtech/sap-abap-mcp.git
340
+ cd sap-abap-mcp
293
341
  npm install
294
342
  npm run typecheck # tsc -p . --noEmit
295
343
  npm run compile # esbuild → out/extension.js + out/mcp-server.js