@dozimple/abap-adt 1.0.1 → 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/docs/TOOLS.md CHANGED
@@ -1,17 +1,17 @@
1
1
  # Referencia de tools — abap-adt-doZimple
2
2
 
3
- Generado desde el código con `npm run docs`. 47 tools en 9 grupos y 3 flujos guiados.
3
+ Generado desde el código con `npm run docs`. 51 tools en 9 grupos y 3 flujos guiados.
4
4
  Producto de [DoZimple](https://dozimple.cl).
5
5
 
6
6
  ## Índice
7
7
 
8
8
  - [Revisión de código y pases](#revision) — 5 tools: `transport_diff`, `transport_contents`, `co_change`, `inactive_objects`, `edit_preflight`
9
- - [Calidad, ATC y remediación](#calidad) — 5 tools: `run_atc`, `atc_quickfix`, `api_release_state`, `syntax_check`, `run_unit_tests`
10
- - [Exploración del repositorio](#exploracion) — 9 tools: `search_objects`, `get_source`, `where_used`, `object_versions`, `package_contents`, `ddic_type_info`, `transaction_info`, `function_modules`, `text_elements`
9
+ - [Calidad, ATC y remediación](#calidad) — 6 tools: `run_atc`, `atc_quickfix`, `api_release_state`, `sap_notes`, `syntax_check`, `run_unit_tests`
10
+ - [Exploración del repositorio](#exploracion) — 11 tools: `search_objects`, `get_source`, `where_used`, `source_search`, `object_versions`, `package_contents`, `ddic_type_info`, `transaction_info`, `function_modules`, `text_elements`, `enhancements`
11
11
  - [Consulta de datos](#datos) — 2 tools: `sql_query`, `table_contents`
12
12
  - [Diagnóstico de incidentes](#diagnostico) — 4 tools: `dumps`, `jobs`, `application_log`, `gateway_errors`
13
13
  - [Documentación SAP](#documentacion) — 7 tools: `abap_feature_matrix`, `docs_search`, `docs_fetch`, `clean_core_objects`, `clean_core_object`, `abap_lint`, `docs_community_search`
14
- - [Escritura controlada](#escritura) — 4 tools: `write_source`, `activate`, `write_text_elements`, `create_transport`
14
+ - [Escritura controlada](#escritura) — 5 tools: `write_source`, `revert_source`, `activate`, `write_text_elements`, `create_transport`
15
15
  - [DoZimple Transport Risk](#transport-risk) — 7 tools: `analyze_transport_risk`, `import_health`, `failure_ranking`, `change_audit`, `object_transport_history`, `remote_source`, `transport_source_check`
16
16
  - [Operación y crecimiento](#operacion) — 4 tools: `sap_systems`, `report_gap`, `close_gap`, `usage_stats`
17
17
  - [Flujos guiados](#flujos-guiados)
@@ -185,6 +185,33 @@ Estado de liberación de un objeto SAP (clase, FM/BAPI, tabla, CDS…) por contr
185
185
 
186
186
  \* obligatorio
187
187
 
188
+ ### `sap_notes` — Notas SAP en el sistema (SNOTE)
189
+
190
+ Estado de notas SAP en este sistema, como en SNOTE: si está descargada, estado de implementación (completa, incompleta, versión anterior, se puede implementar, obsoleta, no se puede implementar), estado de tratamiento, versión, componente y título. Con notes=[…] responde por notas concretas (p. ej. «¿está la 2198647 en PRD?»); sin notas, lista las del estado pedido. Solo conoce las notas descargadas en el sistema: no consulta el portal.
191
+
192
+ | | |
193
+ |---|---|
194
+ | **Acceso** | Solo lectura |
195
+ | **Créditos** | [abap-adt-api](https://github.com/marcellourbani/abap-adt-api) — Marcello Urbani (MIT, dependencia) |
196
+
197
+ | Parámetro | Tipo | Por defecto | Descripción |
198
+ |---|---|---|---|
199
+ | `system` | string | | Sistema SAP configurado. Obligatorio si hay varios y ninguno por defecto. |
200
+ | `notes` | lista de string | | |
201
+ | `implementation` | lista de `E` \| `U` \| `V` \| `N` \| `O` \| `-` | | Sin notes: filtrar por estado de implementación (E completa, U incompleta, V versión anterior, N se puede implementar, O obsoleta, - no se puede) |
202
+ | `component` | string | | Sin notes: prefijo de componente, p. ej. SD-BF o MM-PUR |
203
+ | `max` | number | 100 | |
204
+
205
+ \* obligatorio
206
+
207
+ Salida estructurada (`structuredContent`, además del texto):
208
+
209
+ | Campo | Tipo | Descripción |
210
+ |---|---|---|
211
+ | `notes` | lista de { note, downloaded, implementation, implementation_code, processing, version, component, title, processor } | |
212
+ | `total` | number | |
213
+ | `truncated` | boolean | |
214
+
188
215
  ### `syntax_check` — Chequeo de sintaxis SAP
189
216
 
190
217
  Chequeo de sintaxis real de SAP (no abaplint). Si pasas `source`, se comprueba ESE código sin guardarlo: sirve para validar un cambio antes de escribirlo. Sin `source`, comprueba lo último guardado.
@@ -206,6 +233,16 @@ Chequeo de sintaxis real de SAP (no abaplint). Si pasas `source`, se comprueba E
206
233
 
207
234
  \* obligatorio
208
235
 
236
+ Salida estructurada (`structuredContent`, además del texto):
237
+
238
+ | Campo | Tipo | Descripción |
239
+ |---|---|---|
240
+ | `object` | string | |
241
+ | `checked` | `proposed` \| `saved` | proposed = la fuente pasada sin guardar; saved = lo último guardado |
242
+ | `errors` | number | |
243
+ | `warnings` | number | |
244
+ | `messages` | lista de { severity, line, offset, text, uri } | |
245
+
209
246
  ### `run_unit_tests` — Ejecutar ABAP Unit
210
247
 
211
248
  Ejecuta los tests ABAP Unit de una clase o programa y devuelve el resultado por método, con el detalle de cada fallo. Solo corre tests RISK LEVEL HARMLESS y DURATION SHORT. Si no hay clases de test lo dice: cero tests no es un éxito.
@@ -288,6 +325,41 @@ Lista de uso (where-used) de un objeto: quién lo referencia, con paquete y resp
288
325
 
289
326
  \* obligatorio
290
327
 
328
+ ### `source_search` — Buscar texto en el código
329
+
330
+ Busca un texto (o una expresión regular) en el código fuente de un paquete (con subpaquetes), de una orden de transporte o de una lista de objetos, y devuelve objeto, include, línea y la línea encontrada. Sirve donde where_used no llega: llamadas dinámicas, literales, código Z que el índice de referencias no cubre. Lee cada fuente, así que exige un alcance y tiene tope de objetos; los objetos que no se pudieron leer se listan aparte.
331
+
332
+ | | |
333
+ |---|---|
334
+ | **Acceso** | Solo lectura |
335
+ | **Créditos** | [abap-adt-api](https://github.com/marcellourbani/abap-adt-api) — Marcello Urbani (MIT, dependencia)<br>[vibing-steampunk](https://github.com/oisee/vibing-steampunk) — oisee y contribuidores (MIT, idea) |
336
+
337
+ | Parámetro | Tipo | Por defecto | Descripción |
338
+ |---|---|---|---|
339
+ | `system` | string | | Sistema SAP configurado. Obligatorio si hay varios y ninguno por defecto. |
340
+ | `text` * | string | | Texto a buscar (sin distinguir mayúsculas), p. ej. RV_FLOW o 'CALL FUNCTION' |
341
+ | `regex` | boolean | false | Tratar text como expresión regular (máx. 200 caracteres) |
342
+ | `package` | string | | Alcance: paquete de desarrollo |
343
+ | `include_subpackages` | boolean | true | |
344
+ | `transport` | string | | Alcance: orden (o tarea) de transporte |
345
+ | `objects` | lista de string | | Alcance: lista de objetos por nombre |
346
+ | `ignore_comments` | boolean | false | No contar líneas de comentario |
347
+ | `max_objects` | number | 150 | |
348
+ | `max_hits` | number | 300 | |
349
+
350
+ \* obligatorio
351
+
352
+ Salida estructurada (`structuredContent`, además del texto):
353
+
354
+ | Campo | Tipo | Descripción |
355
+ |---|---|---|
356
+ | `scope` | string | |
357
+ | `objects_in_scope` | number | |
358
+ | `scanned` | number | Objetos leídos |
359
+ | `truncated` | boolean | true si el alcance tenía más objetos que max_objects o más coincidencias que max_hits |
360
+ | `hits` | lista de { object, type, include, line, text } | |
361
+ | `skipped` | lista de { object, reason } | Objetos que no se pudieron leer |
362
+
291
363
  ### `object_versions` — Versiones de un objeto
292
364
 
293
365
  Historial de versiones de un objeto (fecha, autor, orden). Con show=N devuelve la fuente de la versión N de la lista (1 = la más reciente), para comparar con la actual.
@@ -395,6 +467,37 @@ Lee los símbolos de texto (TEXT-001…), textos de selección o encabezados de
395
467
 
396
468
  \* obligatorio
397
469
 
470
+ ### `enhancements` — Ampliaciones y BAdI
471
+
472
+ Qué ampliaciones hay y dónde. badi=NOMBRE: implementaciones de esa BAdI, nuevas y clásicas, activas o no. program + program_type (PROG, CLAS, FUGR): ampliaciones de código (puntos y secciones implícitos o explícitos) implementadas dentro de ese programa, clase o grupo — lo que cambia el comportamiento de un estándar sin tocar su código. prefix (p. ej. Z): implementaciones de ampliación de ese espacio de nombres, por tipo. Solo lectura.
473
+
474
+ | | |
475
+ |---|---|
476
+ | **Acceso** | Solo lectura |
477
+ | **Créditos** | [abap-adt-api](https://github.com/marcellourbani/abap-adt-api) — Marcello Urbani (MIT, dependencia)<br>[vibing-steampunk](https://github.com/oisee/vibing-steampunk) — oisee y contribuidores (MIT, idea) |
478
+
479
+ | Parámetro | Tipo | Por defecto | Descripción |
480
+ |---|---|---|---|
481
+ | `system` | string | | Sistema SAP configurado. Obligatorio si hay varios y ninguno por defecto. |
482
+ | `badi` | string | | Definición de BAdI, p. ej. MB_MIGO_BADI |
483
+ | `program` | string | | Programa, clase o grupo de funciones ampliado, p. ej. SAPMV45A |
484
+ | `program_type` | `PROG` \| `CLAS` \| `FUGR` | "PROG" | |
485
+ | `prefix` | string | | Implementaciones cuyo nombre empieza así, p. ej. Z o ZSD |
486
+ | `tool_type` | string | | Con prefix: filtrar por tipo, p. ej. BADI_IMPL o HOOK_IMPL |
487
+ | `max` | number | 200 | |
488
+
489
+ \* obligatorio
490
+
491
+ Salida estructurada (`structuredContent`, además del texto):
492
+
493
+ | Campo | Tipo | Descripción |
494
+ |---|---|---|
495
+ | `mode` | `badi` \| `program` \| `prefix` | |
496
+ | `target` | string | |
497
+ | `rows` | lista de record | |
498
+ | `total` | number | |
499
+ | `truncated` | boolean | |
500
+
398
501
  <a id="datos"></a>
399
502
  ## Consulta de datos
400
503
 
@@ -417,6 +520,16 @@ Ejecuta un SELECT de ABAP SQL (con WHERE, JOIN, ORDER BY, subconsultas) vía la
417
520
 
418
521
  \* obligatorio
419
522
 
523
+ Salida estructurada (`structuredContent`, además del texto):
524
+
525
+ | Campo | Tipo | Descripción |
526
+ |---|---|---|
527
+ | `rows` | number | Filas devueltas |
528
+ | `columns` | lista de string | |
529
+ | `values` | lista de record | Filas como objetos columna→valor (hasta 500; el texto las trae todas) |
530
+ | `truncated` | boolean | true si values no incluye todas las filas |
531
+ | `notes` | lista de string | Avisos de la política de datos (enmascarado, tope de filas) |
532
+
420
533
  ### `table_contents` — Contenido de una tabla
421
534
 
422
535
  Filas de una tabla, vista o CDS, con columnas y filtro opcionales. Atajo de sql_query para el caso típico «enséñame lo que hay en ZTABLA donde …». Para JOIN, subconsultas o agregados usa sql_query.
@@ -444,7 +557,7 @@ Filas de una tabla, vista o CDS, con columnas y filtro opcionales. Atajo de sql_
444
557
 
445
558
  ### `dumps` — Dumps (ST22)
446
559
 
447
- Lista los dumps de ejecución (ST22): fecha, error, programa, usuario y texto corto. Filtra por usuario y por texto (error o programa). Con detail=N devuelve el dump N completo (qué pasó, análisis, dónde terminó, fuente, pila).
560
+ Lista los dumps de ejecución (ST22): fecha, error, programa, usuario y texto corto. Filtra por usuario y por texto (error o programa). Con detail=N devuelve el dump N completo (qué pasó, análisis, dónde terminó, fuente, pila). Con group_by (error, program, error_program, user, day) y days=N responde «los errores más frecuentes del periodo»: cuenta los dumps de los últimos N días agrupados, con primer y último caso, usuarios afectados y dónde terminó. La lista y el detalle salen del feed ADT (solo los más recientes); los grupos, de la cabecera de ST22 (SNAP_BEG).
448
561
 
449
562
  | | |
450
563
  |---|---|
@@ -459,9 +572,24 @@ Lista los dumps de ejecución (ST22): fecha, error, programa, usuario y texto co
459
572
  | `contains` | string | | Filtra por error o programa, p. ej. CALL_FUNCTION_NOT_FOUND o ZFI_REPORTE |
460
573
  | `max` | number | 20 | |
461
574
  | `detail` | number | | Número de la lista para ver el dump completo |
575
+ | `group_by` | `error` \| `program` \| `error_program` \| `user` \| `day` | | Agrupar los dumps del periodo: por error, programa, error+programa, usuario o día |
576
+ | `days` | number | 7 | Periodo hacia atrás para group_by (días) |
462
577
 
463
578
  \* obligatorio
464
579
 
580
+ Salida estructurada (`structuredContent`, además del texto):
581
+
582
+ | Campo | Tipo | Descripción |
583
+ |---|---|---|
584
+ | `mode` | `list` \| `detail` \| `groups` | |
585
+ | `total` | number | Dumps considerados (feed leído o filas del periodo) |
586
+ | `period_days` | number | |
587
+ | `since` | string | AAAAMMDD desde el que se contó |
588
+ | `truncated` | boolean | true si el periodo tiene más dumps de los que se pudieron leer |
589
+ | `group_by` | `error` \| `program` \| `error_program` \| `user` \| `day` | |
590
+ | `groups` | lista de { key, count, first, last, users, where } | |
591
+ | `dumps` | lista de { n, error, program, user } | |
592
+
465
593
  ### `jobs` — Jobs de fondo (SM37)
466
594
 
467
595
  Jobs de fondo por nombre (admite *), usuario, estado y fecha, con sus pasos (programa y variante). Responde «¿corrió anoche el job de X?, ¿por qué se canceló?». El log detallado del job sigue en SM37.
@@ -684,6 +812,28 @@ Sustituye la fuente COMPLETA de un objeto existente (o de un include de clase),
684
812
 
685
813
  \* obligatorio
686
814
 
815
+ ### `revert_source` — Volver a una versión anterior
816
+
817
+ Deshace un cambio escribiendo de nuevo una versión anterior del objeto: la última activa (para limpiar un borrador inactivo tras un write_source cuya activación falló), la anterior a la activa, o una concreta del historial de object_versions. Pasa por la misma vista previa, confirmación, bloqueo y orden que write_source: nunca revierte por su cuenta. Solo objetos de código fuente.
818
+
819
+ | | |
820
+ |---|---|
821
+ | **Acceso** | Escribe (solo DEV con `allowWrite`; nunca QAS/PRD) |
822
+ | **Créditos** | [abap-adt-api](https://github.com/marcellourbani/abap-adt-api) — Marcello Urbani (MIT, dependencia) |
823
+
824
+ | Parámetro | Tipo | Por defecto | Descripción |
825
+ |---|---|---|---|
826
+ | `system` | string | | Sistema SAP configurado. Obligatorio si hay varios y ninguno por defecto. |
827
+ | `object_name` * | string | | |
828
+ | `object_type` | string | | Tipo corto: PROG, INCL, CLAS, INTF, FUGR, FUNC, DDLS, DDLX, DCLS, TABL, STRU, VIEW, DTEL, DOMA, TTYP, MSAG, XSLT, BDEF, SRVD, SRVB, ENHO. También vale el tipo ADT (p. ej. PROG/P). |
829
+ | `include` | `main` \| `definitions` \| `implementations` \| `macros` \| `testclasses` | "main" | |
830
+ | `target` | union | "active" | «active»: la última versión activa (deshace un borrador inactivo, p. ej. un write_source cuya activación falló). «previous»: la versión anterior a la activa (deshace la última activación). Un número N: la versión N tal como la lista object_versions. |
831
+ | `transport` | string | | Orden (o tarea) donde debe ir la reversión. Obligatoria salvo objetos locales |
832
+ | `activate` | boolean | true | |
833
+ | `confirm_token` | string | | Token de la vista previa. Sin él la tool no escribe: devuelve qué va a cambiar y el token, que se usa tras la conformidad del usuario (un solo uso, 10 min). |
834
+
835
+ \* obligatorio
836
+
687
837
  ### `activate` — Activar objeto
688
838
 
689
839
  Activa un objeto y devuelve los mensajes de SAP tal cual (errores con línea, avisos, objetos que quedan inactivos).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dozimple/abap-adt",
3
- "version": "1.0.1",
3
+ "version": "1.2.0",
4
4
  "description": "DoZimple MCP server for SAP ABAP: multi-system, secure by design — code review, ATC, diagnosis and documentation for ECC and S/4HANA",
5
5
  "keywords": [
6
6
  "sap",