@dozimple/abap-adt 1.0.0-rc.1
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 +75 -0
- package/LICENSE +202 -0
- package/NOTICE +19 -0
- package/README.es.md +356 -0
- package/README.md +356 -0
- package/SECURITY.md +68 -0
- package/THIRD_PARTY_NOTICES.md +134 -0
- package/config/systems.example.json +39 -0
- package/dist/core/activation.js +18 -0
- package/dist/core/atc.js +94 -0
- package/dist/core/audit.js +93 -0
- package/dist/core/catalog.en.js +92 -0
- package/dist/core/catalog.js +139 -0
- package/dist/core/checks.js +19 -0
- package/dist/core/config.js +136 -0
- package/dist/core/confirm.js +43 -0
- package/dist/core/connection.js +159 -0
- package/dist/core/credentials.js +44 -0
- package/dist/core/datapolicy.js +175 -0
- package/dist/core/diff.js +115 -0
- package/dist/core/edits.js +31 -0
- package/dist/core/errors.js +68 -0
- package/dist/core/feeds.js +60 -0
- package/dist/core/notes.js +18 -0
- package/dist/core/objects.js +143 -0
- package/dist/core/output.js +27 -0
- package/dist/core/policy.js +126 -0
- package/dist/core/prompts.js +89 -0
- package/dist/core/registry.js +316 -0
- package/dist/core/revisions.js +97 -0
- package/dist/core/sidecar.js +85 -0
- package/dist/core/sql.js +54 -0
- package/dist/core/telemetry.js +42 -0
- package/dist/core/tool.js +5 -0
- package/dist/core/transport.js +109 -0
- package/dist/index.js +55 -0
- package/dist/scripts/audit-verify.js +19 -0
- package/dist/scripts/smoke.js +87 -0
- package/dist/tools/core/activate.js +27 -0
- package/dist/tools/core/api_release_state.js +58 -0
- package/dist/tools/core/atc_quickfix.js +159 -0
- package/dist/tools/core/co_change.js +73 -0
- package/dist/tools/core/create_transport.js +44 -0
- package/dist/tools/core/ddic_type_info.js +81 -0
- package/dist/tools/core/dumps.js +55 -0
- package/dist/tools/core/edit_preflight.js +112 -0
- package/dist/tools/core/function_modules.js +75 -0
- package/dist/tools/core/gateway_errors.js +45 -0
- package/dist/tools/core/get_source.js +70 -0
- package/dist/tools/core/inactive_objects.js +29 -0
- package/dist/tools/core/object_versions.js +35 -0
- package/dist/tools/core/package_contents.js +59 -0
- package/dist/tools/core/run_atc.js +117 -0
- package/dist/tools/core/run_unit_tests.js +60 -0
- package/dist/tools/core/search_objects.js +26 -0
- package/dist/tools/core/sql_query.js +25 -0
- package/dist/tools/core/support.js +95 -0
- package/dist/tools/core/syntax_check.js +35 -0
- package/dist/tools/core/table_contents.js +57 -0
- package/dist/tools/core/text_elements.js +108 -0
- package/dist/tools/core/transaction_info.js +43 -0
- package/dist/tools/core/transport_contents.js +49 -0
- package/dist/tools/core/transport_diff.js +111 -0
- package/dist/tools/core/where_used.js +37 -0
- package/dist/tools/core/write_source.js +95 -0
- package/dist/tools/docs/docs.js +159 -0
- package/dist/tools/local/growth.js +104 -0
- package/dist/tools/local/sap_systems.js +65 -0
- package/dist/tools/transport-risk/_service.js +63 -0
- package/dist/tools/transport-risk/risk_extras.js +90 -0
- package/dist/tools/transport-risk/transport_risk.js +42 -0
- package/docs/THREAT_MODEL.md +70 -0
- package/docs/TOOLS.md +980 -0
- package/package.json +68 -0
- package/scripts/set-password.sh +31 -0
package/README.es.md
ADDED
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# abap-adt-doZimple
|
|
4
|
+
|
|
5
|
+
[English](README.md) · **Español**
|
|
6
|
+
|
|
7
|
+
[](../../actions/workflows/ci.yml)    
|
|
8
|
+
|
|
9
|
+
**IA que trabaja en tu SAP con las reglas de un consultor senior.**
|
|
10
|
+
|
|
11
|
+
Servidor [MCP](https://modelcontextprotocol.io) de **[DoZimple](https://dozimple.cl)** que da a los agentes de IA —
|
|
12
|
+
Claude Code, Kiro o cualquier cliente MCP — acceso seguro y verificable a sistemas SAP ABAP:
|
|
13
|
+
revisar código y órdenes de transporte, ejecutar ATC y ABAP Unit, diagnosticar incidentes, consultar la
|
|
14
|
+
documentación oficial y, donde se autorice, guardar cambios en la orden correcta.
|
|
15
|
+
|
|
16
|
+
**45 tools · 9 grupos funcionales · 3 flujos guiados · ECC 6.0 (NW 7.50) y S/4HANA**
|
|
17
|
+
|
|
18
|
+
[Funcionalidades](#funcionalidades-por-grupo) · [Referencia completa de tools](docs/TOOLS.md) ·
|
|
19
|
+
[Seguridad](SECURITY.md) · [DoZimple Transport Risk](#dozimple-transport-risk) · [Créditos](#créditos) · [Contacto](https://dozimple.cl)
|
|
20
|
+
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Qué le puedes pedir
|
|
26
|
+
|
|
27
|
+
> «¿Qué cambia de verdad la orden DEVK900123 y qué objetos suelen viajar con ella que no van dentro?»
|
|
28
|
+
>
|
|
29
|
+
> «Pasa el ATC a ZDEMO_REPORTE, explícame los hallazgos P1 con su nota SAP y propón la corrección que ofrece SAP.»
|
|
30
|
+
>
|
|
31
|
+
> «¿Se puede usar `COND` en este sistema 7.50? Si no, reescribe el método con sintaxis compatible y valídalo contra SAP.»
|
|
32
|
+
>
|
|
33
|
+
> «El job de facturación de anoche falló: dumps, log del job y log de aplicación, y dime la causa probable.»
|
|
34
|
+
>
|
|
35
|
+
> «¿Este pase de cuatro órdenes está listo para productivo? Dímelo en lenguaje de negocio para el PMO.»
|
|
36
|
+
|
|
37
|
+
El agente elige las tools, las encadena y responde con evidencia. Cada respuesta indica de qué sistema viene, y
|
|
38
|
+
**un fallo nunca se presenta como resultado vacío o como éxito**.
|
|
39
|
+
|
|
40
|
+
## Por qué es distinto
|
|
41
|
+
|
|
42
|
+
| | Enfoque habitual | **abap-adt-doZimple** |
|
|
43
|
+
|---|---|---|
|
|
44
|
+
| Sistemas | Uno por instancia, sin roles | Todos los de la organización, con política por rol: DEV / QAS / PRD |
|
|
45
|
+
| Escritura | Guarda donde SAP decida, o no permite escribir | Solo en desarrollo, con orden explícita, vista previa y confirmación humana; se detiene ante un bloqueo CTS ajeno |
|
|
46
|
+
| Verificación | abaplint o nada | Sintaxis real de SAP, también sobre código aún no guardado |
|
|
47
|
+
| Parámetros | Un parámetro mal escrito se ignora en silencio y la llamada sigue | **Los parámetros desconocidos se rechazan con la lista de los admitidos**: un `transprot` mal escrito nunca se ejecuta sin la orden que querías |
|
|
48
|
+
| Resultados ante un fallo | Listas vacías o «OK» engañosos | Error tipado que dice qué no se pudo comprobar y por qué |
|
|
49
|
+
| Releases | Endpoints fijos | Capacidades leídas del discovery ADT de cada sistema |
|
|
50
|
+
| IDE | Suele exigir el IDE abierto | Servidor independiente, sin IDE |
|
|
51
|
+
| Terceros | Dependencias mezcladas con las credenciales | Componentes aislados en su propio proceso y filtrados |
|
|
52
|
+
|
|
53
|
+
## Visión general
|
|
54
|
+
|
|
55
|
+
<!-- groups:start -->
|
|
56
|
+
| Grupo | Para qué | Tools |
|
|
57
|
+
|---|---|---|
|
|
58
|
+
| [Revisión de código y pases](#g-revision) | Saber qué cambia de verdad una orden y qué puede romper, antes de liberarla. | 5 |
|
|
59
|
+
| [Calidad, ATC y remediación](#g-calidad) | Encontrar, entender y corregir hallazgos con la sintaxis y las correcciones reales de SAP. | 5 |
|
|
60
|
+
| [Exploración del repositorio](#g-exploracion) | Leer y entender cualquier objeto ABAP y sus relaciones, en ECC y en S/4HANA. | 9 |
|
|
61
|
+
| [Consulta de datos](#g-datos) | Preguntar a las tablas con ABAP SQL, de solo lectura y sin tocar material de credenciales. | 2 |
|
|
62
|
+
| [Diagnóstico de incidentes](#g-diagnostico) | Reunir en una conversación lo que antes exigía ST22, SM37, SLG1 y /IWFND/ERROR_LOG. | 4 |
|
|
63
|
+
| [Documentación SAP](#g-documentacion) | Responder con la documentación oficial y comprobar qué sintaxis existe en cada release. | 7 |
|
|
64
|
+
| [Escritura controlada](#g-escritura) | Guardar cambios solo en desarrollo, en la orden correcta y con la sintaxis verificada antes. | 4 |
|
|
65
|
+
| [DoZimple Transport Risk](#g-transport-risk) | Decidir si un pase entero puede ir a calidad o productivo, con el porqué en lenguaje de negocio. | 7 |
|
|
66
|
+
| [Operación y crecimiento](#g-operacion) | Ver qué funciona en cada sistema y decidir con datos cuál es la siguiente tool. | 4 |
|
|
67
|
+
<!-- groups:end -->
|
|
68
|
+
|
|
69
|
+
## Arquitectura
|
|
70
|
+
|
|
71
|
+
```mermaid
|
|
72
|
+
flowchart LR
|
|
73
|
+
subgraph Cliente["Cliente MCP (Claude Code, Kiro…)"]
|
|
74
|
+
A[Agente de IA]
|
|
75
|
+
end
|
|
76
|
+
subgraph Srv["abap-adt-doZimple (stdio, sin puertos)"]
|
|
77
|
+
R["Registro y política<br/>sistema · rol · capacidad · módulo"]
|
|
78
|
+
T["45 tools + 3 flujos"]
|
|
79
|
+
K[("Llavero del SO")]
|
|
80
|
+
D["Componente docs<br/>(proceso aislado)"]
|
|
81
|
+
end
|
|
82
|
+
subgraph SAP["Sistemas SAP"]
|
|
83
|
+
DEV["DEV — lectura y, si se autoriza, escritura"]
|
|
84
|
+
QAS["QAS / PRD — solo lectura"]
|
|
85
|
+
TR["DoZimple Transport Risk<br/>(componente SAP)"]
|
|
86
|
+
end
|
|
87
|
+
A <-->|MCP| R --> T
|
|
88
|
+
T -->|ADT sobre HTTPS| DEV
|
|
89
|
+
T -->|ADT sobre HTTPS| QAS
|
|
90
|
+
T -->|servicio ICF| TR
|
|
91
|
+
T --> D
|
|
92
|
+
R -.credenciales.-> K
|
|
93
|
+
D -.consultas filtradas.-> W[(Documentación SAP)]
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Funcionalidades por grupo
|
|
97
|
+
|
|
98
|
+
Resumen por grupo; el detalle de cada tool —parámetros, tipos, valores por defecto, requisitos y créditos— está en
|
|
99
|
+
la **[referencia completa](docs/TOOLS.md)**.
|
|
100
|
+
|
|
101
|
+
<!-- tools:start -->
|
|
102
|
+
<a id="g-revision"></a>
|
|
103
|
+
### Revisión de código y pases
|
|
104
|
+
|
|
105
|
+
*Saber qué cambia de verdad una orden y qué puede romper, antes de liberarla.*
|
|
106
|
+
|
|
107
|
+
| Tool | Qué hace | Acceso |
|
|
108
|
+
|---|---|---|
|
|
109
|
+
| [`transport_diff`](docs/TOOLS.md#revision) | **Qué cambió una orden (diff de código).** Revisión de código de una orden: por cada objeto con fuente (programas, includes, clases, interfaces, FM, CDS) compara la versión grabada con esa orden (o sus tareas) contra la versión anterior, y muestra el diff unificado. | lectura |
|
|
110
|
+
| [`transport_contents`](docs/TOOLS.md#revision) | **Contenido de una orden.** Cabecera, tareas (con dueño y estado) y objetos de una orden de transporte, leídos de E070/E07T/E071. | lectura |
|
|
111
|
+
| [`co_change`](docs/TOOLS.md#revision) | **¿Con qué suele viajar este objeto?** Mira las órdenes que tocaron un objeto y cuenta qué otros objetos viajaron con él, de más a menos frecuente. | lectura |
|
|
112
|
+
| [`inactive_objects`](docs/TOOLS.md#revision) | **Objetos sin activar.** Objetos con versión inactiva (guardados sin activar) del usuario de la conexión, con su orden. | lectura |
|
|
113
|
+
| [`edit_preflight`](docs/TOOLS.md#revision) | **Antes de editar: ¿a qué orden irá?** Dice, ANTES de modificar un objeto, en qué orden acabará el cambio y por qué: bloqueo del CTS (TLOCK) de otra orden, objeto local ($TMP), reparación (sistema original distinto), o si está libre y qué órdenes tienes abiertas. | lectura |
|
|
114
|
+
|
|
115
|
+
<a id="g-calidad"></a>
|
|
116
|
+
### Calidad, ATC y remediación
|
|
117
|
+
|
|
118
|
+
*Encontrar, entender y corregir hallazgos con la sintaxis y las correcciones reales de SAP.*
|
|
119
|
+
|
|
120
|
+
| Tool | Qué hace | Acceso |
|
|
121
|
+
|---|---|---|
|
|
122
|
+
| [`run_atc`](docs/TOOLS.md#calidad) | **Ejecutar ATC.** Ejecuta el ATC sobre un objeto o una orden de transporte y lista los hallazgos numerados (prioridad, línea, check, mensaje), con los totales P1/P2/P3 que da SAP. | lectura |
|
|
123
|
+
| [`atc_quickfix`](docs/TOOLS.md#calidad) | **Correcciones propuestas por SAP.** Correcciones que SAP ofrece (las mismas de Ctrl+1 en Eclipse) para un hallazgo ATC o una línea: crear símbolo de texto, extraer constante, etc. | lectura |
|
|
124
|
+
| [`api_release_state`](docs/TOOLS.md#calidad) | **¿Está liberada esta API? ¿Cuál es su sucesor?** Estado de liberación de un objeto SAP (clase, FM/BAPI, tabla, CDS…) por contrato C0–C4 y su sucesor liberado, leído del propio sistema. | lectura |
|
|
125
|
+
| [`syntax_check`](docs/TOOLS.md#calidad) | **Chequeo de sintaxis SAP.** Chequeo de sintaxis real de SAP (no abaplint). | lectura |
|
|
126
|
+
| [`run_unit_tests`](docs/TOOLS.md#calidad) | **Ejecutar ABAP Unit.** Ejecuta los tests ABAP Unit de una clase o programa y devuelve el resultado por método, con el detalle de cada fallo. | ejecuta (DEV) |
|
|
127
|
+
|
|
128
|
+
<a id="g-exploracion"></a>
|
|
129
|
+
### Exploración del repositorio
|
|
130
|
+
|
|
131
|
+
*Leer y entender cualquier objeto ABAP y sus relaciones, en ECC y en S/4HANA.*
|
|
132
|
+
|
|
133
|
+
| Tool | Qué hace | Acceso |
|
|
134
|
+
|---|---|---|
|
|
135
|
+
| [`search_objects`](docs/TOOLS.md#exploracion) | **Buscar objetos ABAP.** Busca objetos del repositorio por nombre (admite * como comodín). | lectura |
|
|
136
|
+
| [`get_source`](docs/TOOLS.md#exploracion) | **Leer fuente ABAP.** Lee la fuente de cualquier objeto: programa, include, clase (y sus includes), interfaz, módulo de función (sin necesidad de saber el grupo), CDS, tabla/estructura, etc. | lectura |
|
|
137
|
+
| [`where_used`](docs/TOOLS.md#exploracion) | **Dónde se usa.** Lista de uso (where-used) de un objeto: quién lo referencia, con paquete y responsable. | lectura |
|
|
138
|
+
| [`object_versions`](docs/TOOLS.md#exploracion) | **Versiones de un objeto.** Historial de versiones de un objeto (fecha, autor, orden). | lectura |
|
|
139
|
+
| [`package_contents`](docs/TOOLS.md#exploracion) | **Contenido de un paquete.** Objetos de un paquete de desarrollo agrupados por tipo, con sus subpaquetes (TADIR/TDEVC, cualquier release). | lectura |
|
|
140
|
+
| [`ddic_type_info`](docs/TOOLS.md#exploracion) | **Elemento de datos, dominio o tipo tabla.** Definición de un tipo DDIC: elemento de datos (dominio, tipo, longitud, textos), dominio (tipo, longitud, valores fijos, tabla de valores) o tipo tabla (tipo de línea, clave). | lectura |
|
|
141
|
+
| [`transaction_info`](docs/TOOLS.md#exploracion) | **Qué ejecuta una transacción.** Programa, dynpro y parámetros de una transacción (TSTC/TSTCP), con su texto. | lectura |
|
|
142
|
+
| [`function_modules`](docs/TOOLS.md#exploracion) | **Módulos de función de un grupo.** Lista los módulos de función de un grupo de funciones, con su texto y si son RFC o de actualización. | lectura |
|
|
143
|
+
| [`text_elements`](docs/TOOLS.md#exploracion) | **Símbolos de texto y textos de selección.** Lee los símbolos de texto (TEXT-001…), textos de selección o encabezados de un programa, clase o grupo de funciones. | lectura |
|
|
144
|
+
|
|
145
|
+
<a id="g-datos"></a>
|
|
146
|
+
### Consulta de datos
|
|
147
|
+
|
|
148
|
+
*Preguntar a las tablas con ABAP SQL, de solo lectura y sin tocar material de credenciales.*
|
|
149
|
+
|
|
150
|
+
| Tool | Qué hace | Acceso |
|
|
151
|
+
|---|---|---|
|
|
152
|
+
| [`sql_query`](docs/TOOLS.md#datos) | **Consulta ABAP SQL.** Ejecuta un SELECT de ABAP SQL (con WHERE, JOIN, ORDER BY, subconsultas) vía la vista previa de datos de ADT. | lectura |
|
|
153
|
+
| [`table_contents`](docs/TOOLS.md#datos) | **Contenido de una tabla.** Filas de una tabla, vista o CDS, con columnas y filtro opcionales. | lectura |
|
|
154
|
+
|
|
155
|
+
<a id="g-diagnostico"></a>
|
|
156
|
+
### Diagnóstico de incidentes
|
|
157
|
+
|
|
158
|
+
*Reunir en una conversación lo que antes exigía ST22, SM37, SLG1 y /IWFND/ERROR_LOG.*
|
|
159
|
+
|
|
160
|
+
| Tool | Qué hace | Acceso |
|
|
161
|
+
|---|---|---|
|
|
162
|
+
| [`dumps`](docs/TOOLS.md#diagnostico) | **Dumps (ST22).** Lista los dumps de ejecución (ST22): fecha, error, programa, usuario y texto corto. | lectura |
|
|
163
|
+
| [`jobs`](docs/TOOLS.md#diagnostico) | **Jobs de fondo (SM37).** Jobs de fondo por nombre (admite *), usuario, estado y fecha, con sus pasos (programa y variante). | lectura |
|
|
164
|
+
| [`application_log`](docs/TOOLS.md#diagnostico) | **Log de aplicación (SLG1), cabeceras.** Cabeceras del log de aplicación (BALHDR) por objeto/subobjeto, nº externo, usuario y fecha, con el recuento de errores y avisos. | lectura |
|
|
165
|
+
| [`gateway_errors`](docs/TOOLS.md#diagnostico) | **Errores de SAP Gateway (/IWFND/ERROR_LOG).** Lista los errores del log de SAP Gateway (servicios OData): servicio, error, usuario, fecha. | lectura |
|
|
166
|
+
|
|
167
|
+
<a id="g-documentacion"></a>
|
|
168
|
+
### Documentación SAP
|
|
169
|
+
|
|
170
|
+
*Responder con la documentación oficial y comprobar qué sintaxis existe en cada release.*
|
|
171
|
+
|
|
172
|
+
| Tool | Qué hace | Acceso |
|
|
173
|
+
|---|---|---|
|
|
174
|
+
| [`abap_feature_matrix`](docs/TOOLS.md#documentacion) | **¿Desde qué release existe esta sintaxis?** Disponibilidad de cada característica del lenguaje ABAP por release (7.40 … 7.58, 2025). | local |
|
|
175
|
+
| [`docs_search`](docs/TOOLS.md#documentacion) | **Buscar en la documentación ABAP.** Busca en la documentación oficial ABAP (keyword docs estándar y cloud), Clean ABAP, guía DSAG, ABAP cheat sheets y ejemplos RAP, en local. | local |
|
|
176
|
+
| [`docs_fetch`](docs/TOOLS.md#documentacion) | **Leer un documento de la documentación.** Devuelve el contenido completo de un documento por su id (el que da docs_search). | local |
|
|
177
|
+
| [`clean_core_objects`](docs/TOOLS.md#documentacion) | **Catálogo de objetos liberados (Clean Core).** Busca en el catálogo público de SAP (abap-atc-cr-cv-s4hc, local) objetos liberados/obsoletos por nombre o tema, con nivel Clean Core (A liberado … D todo) y sucesores. | local |
|
|
178
|
+
| [`clean_core_object`](docs/TOOLS.md#documentacion) | **Estado Clean Core de un objeto SAP.** Estado de liberación, nivel Clean Core y sucesor de un objeto SAP según el catálogo público (local). | local |
|
|
179
|
+
| [`abap_lint`](docs/TOOLS.md#documentacion) | **abaplint sobre un fragmento.** Pasa abaplint (local, el código no sale del equipo) sobre un fragmento o fuente ABAP. | local |
|
|
180
|
+
| [`docs_community_search`](docs/TOOLS.md#documentacion) | **Buscar en SAP Community.** Busca en SAP Community (blogs y preguntas) por mensaje de error, clase o concepto. | local |
|
|
181
|
+
|
|
182
|
+
<a id="g-escritura"></a>
|
|
183
|
+
### Escritura controlada
|
|
184
|
+
|
|
185
|
+
*Guardar cambios solo en desarrollo, en la orden correcta y con la sintaxis verificada antes.*
|
|
186
|
+
|
|
187
|
+
| Tool | Qué hace | Acceso |
|
|
188
|
+
|---|---|---|
|
|
189
|
+
| [`write_source`](docs/TOOLS.md#escritura) | **Guardar fuente en SAP.** Sustituye la fuente COMPLETA de un objeto existente (o de un include de clase), en la orden indicada. | escribe (DEV autorizado) |
|
|
190
|
+
| [`activate`](docs/TOOLS.md#escritura) | **Activar objeto.** Activa un objeto y devuelve los mensajes de SAP tal cual (errores con línea, avisos, objetos que quedan inactivos). | escribe (DEV autorizado) |
|
|
191
|
+
| [`write_text_elements`](docs/TOOLS.md#escritura) | **Crear o cambiar símbolos de texto.** Añade o modifica símbolos de texto (o textos de selección) de un programa/clase/grupo, fusionando con los existentes: no borra los que no se mencionan. | escribe (DEV autorizado) |
|
|
192
|
+
| [`create_transport`](docs/TOOLS.md#escritura) | **Crear orden de transporte.** Crea una orden workbench para el paquete de un objeto, ANTES de la primera edición, para que el cambio caiga en la orden del ticket y no en una tarea reutilizada. | escribe (DEV autorizado) |
|
|
193
|
+
|
|
194
|
+
<a id="g-transport-risk"></a>
|
|
195
|
+
### DoZimple Transport Risk
|
|
196
|
+
|
|
197
|
+
*Decidir si un pase entero puede ir a calidad o productivo, con el porqué en lenguaje de negocio.*
|
|
198
|
+
|
|
199
|
+
| Tool | Qué hace | Acceso |
|
|
200
|
+
|---|---|---|
|
|
201
|
+
| [`analyze_transport_risk`](docs/TOOLS.md#transport-risk) | **Riesgo de transporte.** Dice si una orden (o un pase de varias, separadas por coma) es segura para pasar a calidad o productivo: tareas sin liberar, estado de importación, dependencias que no viajan, acceso posicional, bloqueos del CTS, cola de importación. | lectura |
|
|
202
|
+
| [`import_health`](docs/TOOLS.md#transport-risk) | **Salud de importaciones.** Salud de las importaciones de un destino (calidad o productivo): responde «¿cómo van los pases a productivo?». | lectura |
|
|
203
|
+
| [`failure_ranking`](docs/TOOLS.md#transport-risk) | **Objetos que más fallan al importar.** Ranking de objetos por historial de fallos de importación en un destino. | lectura |
|
|
204
|
+
| [`change_audit`](docs/TOOLS.md#transport-risk) | **Evidencia de auditoría de cambios.** Evidencia para una auditoría de gestión de cambios en un destino: qué entró, con qué ticket, de qué iniciativa y origen. | lectura |
|
|
205
|
+
| [`object_transport_history`](docs/TOOLS.md#transport-risk) | **Historial de transportes de un objeto.** Qué órdenes han tocado un objeto, cuándo, y cuáles llegaron ya al destino. | lectura |
|
|
206
|
+
| [`remote_source`](docs/TOOLS.md#transport-risk) | **Fuente en el destino.** La fuente de un objeto TAL COMO ESTÁ en calidad o productivo, leída por el canal de TMS (como «Traer versiones remotas»). | lectura |
|
|
207
|
+
| [`transport_source_check`](docs/TOOLS.md#transport-risk) | **Código de una orden contra el destino.** Compara el código de los objetos de una orden con el del destino: objetos que no existen allí (R3.4) y deriva de versión — firmas, campos o parámetros distintos que no viajan en la orden (R3.5). | lectura |
|
|
208
|
+
|
|
209
|
+
<a id="g-operacion"></a>
|
|
210
|
+
### Operación y crecimiento
|
|
211
|
+
|
|
212
|
+
*Ver qué funciona en cada sistema y decidir con datos cuál es la siguiente tool.*
|
|
213
|
+
|
|
214
|
+
| Tool | Qué hace | Acceso |
|
|
215
|
+
|---|---|---|
|
|
216
|
+
| [`sap_systems`](docs/TOOLS.md#operacion) | **Sistemas SAP y tools disponibles.** Lista los sistemas configurados (rol, escritura, módulos). | local |
|
|
217
|
+
| [`report_gap`](docs/TOOLS.md#operacion) | **Anotar una tool que falta.** Anota una necesidad que ninguna tool cubre (p. ej. «crear una tabla en 7.50», «liberar una tarea», «leer un SmartForm»), con el rodeo que se usó. | local |
|
|
218
|
+
| [`close_gap`](docs/TOOLS.md#operacion) | **Cerrar un hueco anotado.** Marca como resuelto un hueco anotado con report_gap (porque ya hay una tool, o porque se comprobó que la anotación era errónea), con una nota del porqué. | local |
|
|
219
|
+
| [`usage_stats`](docs/TOOLS.md#operacion) | **Uso de las tools y huecos.** Resumen del registro local: llamadas por tool, tasa de fallo y tipo de fallo, sistemas, y los huecos anotados con report_gap agrupados. | local |
|
|
220
|
+
|
|
221
|
+
<!-- tools:end -->
|
|
222
|
+
|
|
223
|
+
## Flujos guiados
|
|
224
|
+
|
|
225
|
+
<!-- prompts:start -->
|
|
226
|
+
Aparecen como comandos en el cliente MCP (en Claude Code: `/mcp__abap-adt-doZimple__<nombre>`) y encadenan las tools
|
|
227
|
+
con las reglas de trabajo de un consultor senior.
|
|
228
|
+
|
|
229
|
+
| Flujo | Qué hace | Encadena |
|
|
230
|
+
|---|---|---|
|
|
231
|
+
| `revisar_pase` — Revisar una orden antes del pase | Revisión completa de una orden: código, compañeros ausentes, bloqueos y, con el módulo de riesgo, su análisis. | transport_contents → transport_diff → inactive_objects → co_change + edit_preflight → analyze_transport_risk (si hay módulo) → informe en tres capas: negocio, consultor, Basis |
|
|
232
|
+
| `remediar_atc` — Remediar hallazgos ATC de un objeto | ATC → documentación y nota SAP → sucesor liberado → corrección → sintaxis → guardado con orden. | edit_preflight → run_atc (BEFORE) → explain + api_release_state + where_used/object_versions → clasificación CAMBIAR/INVESTIGAR/NO_CAMBIAR → atc_quickfix → syntax_check → write_source con la orden (con OK humano) → run_atc (AFTER) y reducción de P1 |
|
|
233
|
+
| `diagnosticar_ticket` — Diagnosticar un incidente | Dumps, jobs, log de aplicación y errores de Gateway alrededor de un incidente. | dumps → jobs → application_log → gateway_errors → transaction_info / get_source / object_versions / transport_contents → causa probable con evidencia y lo que no se pudo comprobar |
|
|
234
|
+
<!-- prompts:end -->
|
|
235
|
+
|
|
236
|
+
## DoZimple Transport Risk
|
|
237
|
+
|
|
238
|
+
El módulo más valioso para la operación: **dice, antes de liberar, si una orden o un pase entero puede ir a calidad
|
|
239
|
+
o productivo, y por qué no**, en tres capas — veredicto de negocio para el PMO, qué revisar para el consultor y
|
|
240
|
+
acciones de pase para Basis.
|
|
241
|
+
|
|
242
|
+
- **Pases completos, no órdenes sueltas:** lo que viaja en una orden cubre a las demás; calcula la secuencia de
|
|
243
|
+
importación, detecta dependencias mutuas y colisiones entre órdenes.
|
|
244
|
+
- **Lo que se rompe en silencio:** accesos posicionales a estructuras que cambian, dependencias de código y de
|
|
245
|
+
diccionario que no viajan y no existen en el destino, deriva de versión.
|
|
246
|
+
- **El estado real del landscape:** cola de importación del destino, bloqueos del CTS, transportes de copias que
|
|
247
|
+
arrastran cambios ajenos, salud de las importaciones y objetos que más fallan.
|
|
248
|
+
- **Evidencia para auditoría** de gestión de cambios.
|
|
249
|
+
|
|
250
|
+
Funciona sobre cualquier pila ABAP con CTS (ECC y S/4HANA) y es de solo lectura en todos los sistemas. Requiere un
|
|
251
|
+
**componente SAP propietario de DoZimple** (servicio ICF en desarrollo y RFC de solo lectura en los destinos), que no
|
|
252
|
+
se distribuye en este repositorio.
|
|
253
|
+
|
|
254
|
+
**¿Quieres implantarlo en tu landscape? → [dozimple.cl](https://dozimple.cl)**
|
|
255
|
+
|
|
256
|
+
## Seguridad
|
|
257
|
+
|
|
258
|
+
Diseñado para poder presentarse ante Seguridad y Basis sin excepciones. Detalle y modelo de amenazas:
|
|
259
|
+
**[SECURITY.md](SECURITY.md)**.
|
|
260
|
+
|
|
261
|
+
- **Sin superficie de red:** solo stdio; no abre puertos.
|
|
262
|
+
- **Credenciales en el llavero del sistema operativo,** nunca en archivos, logs ni respuestas.
|
|
263
|
+
- **Política por rol:** calidad y productivo nunca se escriben; en desarrollo, solo con autorización explícita.
|
|
264
|
+
- **Parámetros estrictos:** un parámetro desconocido o mal escrito es un error con la lista de los admitidos, nunca se ignora en silencio.
|
|
265
|
+
- **Ninguna escritura sin confirmación humana:** vista previa con la sintaxis de SAP y el diff real, y confirmación
|
|
266
|
+
por elicitación o con un token de un solo uso atado a esos argumentos exactos.
|
|
267
|
+
- **Registro de auditoría encadenado por hash** de toda escritura y ejecución, verificable con `npm run audit:verify`.
|
|
268
|
+
- **Material de credenciales y datos de personal de SAP bloqueados** en las consultas SQL, también a través de vistas
|
|
269
|
+
y CDS, aunque el usuario tenga autorización.
|
|
270
|
+
- **Datos personales enmascarados y tope de filas** en sistemas con datos productivos.
|
|
271
|
+
- **Nada de datos del cliente hacia internet:** la búsqueda online de documentación está apagada por defecto y,
|
|
272
|
+
si se habilita, se filtra toda consulta con objetos, órdenes, sistemas, usuarios o nombres de cliente.
|
|
273
|
+
- **Terceros aislados** en su propio proceso y con entorno mínimo.
|
|
274
|
+
- **Cadena de suministro controlada:** 4 dependencias de producción con versión exacta, sin scripts de instalación,
|
|
275
|
+
firmas verificadas, SBOM CycloneDX, auditoría y escaneo de secretos en cada commit y en CI.
|
|
276
|
+
|
|
277
|
+
Modelo de amenazas con STRIDE y OWASP Top 10 para aplicaciones LLM: **[docs/THREAT_MODEL.md](docs/THREAT_MODEL.md)**.
|
|
278
|
+
|
|
279
|
+
## Compatibilidad
|
|
280
|
+
|
|
281
|
+
| | |
|
|
282
|
+
|---|---|
|
|
283
|
+
| SAP | ECC 6.0 / NetWeaver 7.50 en adelante y S/4HANA on-premise o private cloud, vía ADT (`/sap/bc/adt`). Probado en vivo en S/4HANA 2023 (SAP_BASIS 7.58) y ECC 6.0 EHP8 (SAP_BASIS 7.50). Las funciones que dependen del release (p. ej. estado de liberación de APIs) se detectan por sistema |
|
|
284
|
+
| Clientes MCP | Claude Code, Kiro y cualquier cliente compatible con MCP por stdio |
|
|
285
|
+
| Plataforma | Node.js 22+. Credenciales en el llavero de macOS, en el Secret Service de Linux o en variables de entorno |
|
|
286
|
+
|
|
287
|
+
## Instalación
|
|
288
|
+
|
|
289
|
+
```sh
|
|
290
|
+
npm ci && npm run build
|
|
291
|
+
mkdir -p ~/.config/abap-adt-dozimple
|
|
292
|
+
cp config/systems.example.json ~/.config/abap-adt-dozimple/systems.json # sistemas, roles y permisos
|
|
293
|
+
scripts/set-password.sh MI_DEV # pide la clave; va al llavero (--strict: confirma cada lectura)
|
|
294
|
+
npm run smoke -- MI_DEV # validación de solo lectura
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
Registro en el cliente MCP:
|
|
298
|
+
|
|
299
|
+
```json
|
|
300
|
+
{ "mcpServers": { "abap-adt-doZimple": { "command": "node", "args": ["/ruta/a/abap-adt-doZimple/dist/index.js"] } } }
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
Grupo **Documentación SAP** (opcional): instala [mcp-sap-docs](https://github.com/marianfoo/mcp-sap-docs)
|
|
304
|
+
(Apache-2.0, variante `abap`) en una carpeta aparte y declara su arranque en `sidecars.docs` de `systems.json` (ver
|
|
305
|
+
`config/systems.example.json`). Corre como proceso aislado; la búsqueda online queda apagada salvo `allowOnline`.
|
|
306
|
+
|
|
307
|
+
Ver [CONTRIBUTING.md](CONTRIBUTING.md). Para contribuir o extender: `git config core.hooksPath .githooks` (escáner de secretos y datos de clientes antes de
|
|
308
|
+
cada commit) y la guía [`nueva-tool`](.claude/skills/nueva-tool/SKILL.md) — añadir una tool es añadir un archivo.
|
|
309
|
+
|
|
310
|
+
## Créditos
|
|
311
|
+
|
|
312
|
+
abap-adt-doZimple se construye sobre el trabajo de otros, y lo reconoce: cada tool indica sus créditos en la
|
|
313
|
+
[referencia](docs/TOOLS.md). **Dependencia**: se usa su código. **Datos**: contenido de terceros consultado.
|
|
314
|
+
**Idea**: diseño estudiado y reimplementado sin copiar código. **Algoritmo**: método publicado.
|
|
315
|
+
|
|
316
|
+
<!-- credits:start -->
|
|
317
|
+
| Proyecto | Autor / titular | Licencia | Tipo | Usado en |
|
|
318
|
+
|---|---|---|---|---|
|
|
319
|
+
| [abap-adt-api](https://github.com/marcellourbani/abap-adt-api) | Marcello Urbani | MIT | dependencia | todas (núcleo), `transport_diff`, `transport_contents`, `inactive_objects`, `edit_preflight`, `run_atc` y 22 más |
|
|
320
|
+
| [Model Context Protocol TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk) | Model Context Protocol | MIT | dependencia | todas (núcleo) |
|
|
321
|
+
| [mcp-sap-docs](https://github.com/marianfoo/mcp-sap-docs) | Marian Zeis (marianfoo) | Apache-2.0 | dependencia | `abap_feature_matrix`, `docs_search`, `docs_fetch`, `clean_core_objects`, `clean_core_object`, `abap_lint` y 1 más |
|
|
322
|
+
| [abaplint](https://github.com/abaplint/abaplint) | Lars Hvam y contribuidores | MIT | dependencia | `abap_lint` |
|
|
323
|
+
| [zod](https://github.com/colinhacks/zod) | Colin McDonnell y contribuidores | MIT | dependencia | todas (núcleo) |
|
|
324
|
+
| [ABAP Keyword Documentation](https://help.sap.com/doc/abapdocu_latest_index_htm/latest/en-US/index.htm) | SAP SE | © SAP SE | datos | `docs_search`, `docs_fetch` |
|
|
325
|
+
| [ABAP Cheat Sheets](https://github.com/SAP-samples/abap-cheat-sheets) | SAP (SAP-samples) | Apache-2.0 | datos | `docs_search` |
|
|
326
|
+
| [Clean ABAP (SAP Style Guides)](https://github.com/SAP/styleguides) | SAP | según el repositorio | datos | `docs_search` |
|
|
327
|
+
| [DSAG ABAP-Leitfaden](https://github.com/marianfoo/DSAG-ABAP-Guide) | DSAG e.V. | según el repositorio | datos | `docs_search` |
|
|
328
|
+
| [ABAP Feature Matrix](https://software-heroes.com/en/abap-feature-matrix) | Software-Heroes | © Software-Heroes | datos | `abap_feature_matrix` |
|
|
329
|
+
| [Released objects / Cloudification Repository (abap-atc-cr-cv-s4hc)](https://github.com/SAP/abap-atc-cr-cv-s4hc) | SAP | Apache-2.0 | datos | `clean_core_objects`, `clean_core_object` |
|
|
330
|
+
| [SAP Community / SAP Help Portal](https://community.sap.com) | SAP SE y autores de la comunidad | términos de SAP | datos | `docs_community_search` |
|
|
331
|
+
| [ABAP Remote FS (vscode_abap_remote_fs)](https://github.com/marcellourbani/vscode_abap_remote_fs) | Marcello Urbani | MIT | idea | `syntax_check` |
|
|
332
|
+
| [mcp-abap-adt](https://github.com/mario-andreschak/mcp-abap-adt) | mario-andreschak | MIT | idea | `search_objects`, `get_source`, `package_contents`, `ddic_type_info`, `transaction_info`, `table_contents` |
|
|
333
|
+
| [ARC-1](https://github.com/arc-mcp/arc-1) | arc-mcp (Marian Zeis y contribuidores) | MIT | idea | `transport_diff`, `atc_quickfix`, `gateway_errors` |
|
|
334
|
+
| [vibing-steampunk](https://github.com/oisee/vibing-steampunk) | oisee y contribuidores | MIT | idea | `co_change`, `api_release_state`, `jobs`, `application_log` |
|
|
335
|
+
| [ABAP Accelerator for Amazon Q Developer](https://github.com/aws-solutions-library-samples/guidance-for-deploying-sap-abap-accelerator-for-amazon-q-developer) | AWS Solutions Library Samples | MIT-0 | idea | todas (núcleo), `usage_stats` |
|
|
336
|
+
| [An O(ND) Difference Algorithm and Its Variations (1986)](https://doi.org/10.1007/BF01840446) | Eugene W. Myers | algoritmo publicado | algoritmo | `transport_diff`, `atc_quickfix` |
|
|
337
|
+
<!-- credits:end -->
|
|
338
|
+
|
|
339
|
+
Licencias completas de las dependencias: [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). Si eres autor de alguno de
|
|
340
|
+
estos proyectos y quieres ajustar cómo se te cita, escríbenos a través de [dozimple.cl](https://dozimple.cl).
|
|
341
|
+
|
|
342
|
+
## Sobre DoZimple
|
|
343
|
+
|
|
344
|
+
**[DoZimple](https://dozimple.cl)** — tecnología que conecta operación, datos e innovación. Consultoría y desarrollo
|
|
345
|
+
SAP (ABAP, CDS, OData, RAP, Fiori), integración y SAP BTP, software y portales conectados al ERP, e inteligencia
|
|
346
|
+
artificial aplicada sobre fuentes controladas, con respuestas reproducibles y revisión humana.
|
|
347
|
+
|
|
348
|
+
Este MCP es un ejemplo de cómo trabajamos: IA útil, con control, trazabilidad y seguridad desde el diseño.
|
|
349
|
+
**¿Hablamos? → [dozimple.cl](https://dozimple.cl)**
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
## Licencia
|
|
354
|
+
|
|
355
|
+
[Apache-2.0](LICENSE) — © 2026 [DoZimple](https://dozimple.cl). Ver también [NOTICE](NOTICE). El componente SAP de
|
|
356
|
+
DoZimple Transport Risk es propietario y no forma parte de este repositorio.
|