Cómo funciona

Cómo la exportación se convierte en documentación que usted puede verificar.

Un reporte ABAP de solo lectura exporta su código propio y el contexto que lo rodea. A partir de esa exportación, CodeGraphAI construye un grafo de evidencias, revalida cada relación y cada cita, y genera la documentación. Esta página recorre cada paso: qué produce y dónde están sus límites.

01La exportación

Un reporte de solo lectura, instalado en unos 5 minutos.

Lee código, definiciones del diccionario y configuración. No lee datos transaccionales ni nombres de usuario, y no modifica nada: su única salida son los archivos de exportación, escritos en un directorio que usted elige.

Qué lee la exportación
QuéEn detalle
Código fuente propioProgramas e includes (reportes, pools de módulos, includes de exit de usuario), clases e interfaces (todos sus includes), grupos de funciones y sus módulos de funciones, implementaciones de ampliación y fuentes de vistas CDS.
Definiciones del Diccionario ABAPLa estructura, no el contenido de las tablas: tablas propias, vistas, estructuras, appends, elementos de datos, dominios con valores fijos y tipos de tabla. También las definiciones de las tablas SAP que usa su código.
El índice de la lista de utilización (where-used) de SAPEn ambas direcciones: quién llama a su código desde SAP y qué referencia su código.
TransaccionesLos códigos de transacción del cliente con su programa, dynpro, parámetros y texto.
DynprosLógica de proceso y nombres de campo.
Jobs de fondo que ejecutan programas del clienteNombre del job, paso, programa, nombre de la variante, número de ejecuciones en el período (por defecto, 90 días), fecha de la última ejecución, indicador de periodicidad y estados. Sin nombres de usuario.
Configuración de procesos (customizing)Códigos de proceso IDoc; perfiles de interlocutor IDoc (incluidos de forma predeterminada; una casilla los excluye; vea el límite declarado más abajo); vías de pago y formatos de soporte de pago; árboles DMEE del cliente; proyectos CMOD; implementaciones de BAdI clásicas y nuevas; diálogos de mantenimiento de tablas (SM30); el log de modificaciones SAP (solo los nombres de los objetos SAP modificados).
TextosTextos de objetos, paquetes y mensajes: en el idioma seleccionado, luego en el idioma original y luego en inglés.
InventarioCada objeto del cliente de la selección, de todos los tipos de objeto, marcado según si se exportó su contenido.

Límite declarado: Los perfiles de interlocutor IDoc se incluyen de forma predeterminada y contienen números de interlocutor (de clientes, proveedores y bancos). Una casilla, “Include IDoc partner profiles” (incluir perfiles de interlocutor IDoc), los excluye. La documentación nunca reproduce números de interlocutor. Un campo opcional, “Extra config tables (content)” (tablas de configuración adicionales, con contenido), lee solo las tablas que usted agrega en él; está vacío de forma predeterminada.

Lo que nunca lee ni modifica

  • Código fuente estándar de SAP. La única excepción se describe abajo.
  • Nombres de usuario. Las columnas de autor, planificador y última modificación, y cualquier otra columna con nombres de usuario, se eliminan de cada archivo. El inventario de objetos tampoco tiene una columna de usuario. El código fuente se exporta tal como está escrito, así que un comentario puede contener un nombre o un ID de usuario SAP; antes de cualquier paso de IA, se ocultan los datos personales de los comentarios y de los literales de cadena.
  • Datos transaccionales. Nunca lee pedidos, facturas, contabilizaciones ni datos similares.
  • Su base de datos. El reporte no contiene ningún INSERT, UPDATE, MODIFY, DELETE ni COMMIT sobre la base de datos.

La única excepción

Los includes de exit de usuario que usted indica en la pantalla de selección sí se leen, porque contienen código del cliente dentro de programas estándar de SAP. En el sistema de demostración sintético, el include de exit de usuario MV45AFZZ se documenta como cualquier otro código propio:

MV45AFZZ llama a ZSD_ORDER_STATUS_UPDATE GRAPH:CALLS CODE:mv45afzz.abap:18 — en tarea de actualización, en la subrutina USEREXIT_SAVE_DOCUMENT

Autorizaciones del usuario que ejecuta la exportación
Objeto de autorizaciónAcceso
S_DEVELOPVisualizar
S_TABU_NAM / S_TABU_DISVisualizar
S_DATASETEscribir, para el directorio de salida
S_GUISolo para una descarga a una carpeta del PC

Producto: Las tablas que el usuario no puede visualizar se omiten y quedan registradas en el log.

Instalación y ejecución

Instalación
Unos 5 minutos: crear, pegar, guardar, activar. Es un objeto local (paquete $TMP), por lo que no hace falta ningún transporte.
Salida
Los archivos de exportación, escritos en un directorio del servidor (AL11) o en una carpeta del PC que usted elige.
En fondo
En un sistema con unos pocos miles de objetos propios tarda minutos. Un manifiesto y un log registran qué se exportó, qué se omitió y por qué.
Releases
El piloto se ejecutó en un sistema SAP S/4HANA productivo. La sintaxis del reporte está verificada para ABAP 7.40 SP08, 7.50 y 7.55. Las partes que dependen del release (CDS, DMEE, tablas de BAdI) se leen de forma dinámica y, si no existen, se omiten con una entrada en el log. Consúltenos por su release.
Selección
Por defecto, todos los objetos del cliente (Z*, Y*). Usted puede agregar su propio espacio de nombres (por ejemplo, /ABC/*) y acotar la selección por paquete.

Qué sale de su sistema

02El grafo de evidencias

Cada relación apunta a la línea o a la fila que la respalda.

Una relación por cada punto de evidencia, guardada junto con el mecanismo de detección, el archivo, la línea y un nivel de confianza. Cada una se revalida automáticamente.

Una línea del catálogo, dos evidenciasZSD_ORDER · Llamadas a otro código

LZSD_ORDERU01 llama a BAPI_SALESORDER_CREATEFROMDAT2 GRAPH:CALLS CODE:lzsd_orderu01.abap:33 — en el módulo de funciones ZSD_ORDER_CREATE, registrado en el índice de la lista de utilización de SAP EXPORT:cg_xref_cross.tsv:2

La línea de código

33CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'34  EXPORTING35    order_header_in = is_header

La fila del índice de la lista de utilización

cg_xref_cross.tsv, línea 2

direction
from_custom
type
F
name
BAPI_SALESORDER_CREATEFROMDAT2
include
LZSD_ORDERU01

Se guarda con cada relacióncómo se detectóarchivolíneanivel de confianza

Cada relación indica cómo se estableció
Nivel de confianzaCómo se estableció la relación
ResueltaResuelta a partir de la exportación o del índice de la lista de utilización de SAP.
Configuración o diccionarioTomada de la configuración o del Diccionario ABAP.
Solo por nombreCoincidencia solo por nombre.

Los puntos no resueltos se listan; nunca se fuerzan en el grafo

Lo que el análisis estático no puede resolver aparece como punto no resuelto en Cobertura:

  • llamadas dinámicas
  • SQL dinámico
  • destinos fuera de la exportación
  • sentencias que podrían referirse tanto a una tabla de base de datos como a una tabla interna

Punto no resuelto

CALL FUNCTION gv_fm en ZWM_PICK_LABEL: el nombre de la función se calcula en tiempo de ejecución. Queda listado en Cobertura; nunca se adivina.

CODE:zwm_pick_label.abap:32

Las afirmaciones de ausencia indican lo que el análisis no puede ver

Una frase como “ningún código actualiza esta tabla” solo se escribe después de verificar, y siempre indica lo que la verificación no puede ver.

Se verifica antes

  • las sentencias de base de datos
  • las filas del índice de la lista de utilización
  • los nombres en el código fuente

Lo que el análisis no puede ver, por ejemplo

  • nombres dinámicos
  • código fuera de la exportación
  • código estándar de SAP
  • un índice de la lista de utilización desactualizado

El grafo de evidencias, dibujado

De una transacción a la tabla que modifica, con cada paso citado.

  1. TCODEZWM_LABELPrint picking labels

    INICIAEXPORT:cg_transactions.tsv:15

  2. PROGZWM_PICK_LABEL

    LLAMA, EN TAREA DE ACTUALIZACIÓNCODE:zwm_pick_label.abap:40

    Punto no resuelto

    CALL FUNCTION gv_fm: el nombre de la función se calcula en tiempo de ejecución. Figura en Cobertura; nunca se adivina.

    CODE:zwm_pick_label.abap:32

  3. FMZSD_ORDER_STATUS_UPDATE

    ACTUALIZAGRAPH:WRITESCODE:lzsd_orderu04.abap:8

  4. TABLAZSD_ORDER_LOG
CODE:lzsd_orderu04.abap:8verificado

Líneas 8 a 10 del include LZSD_ORDERU04

8UPDATE zsd_order_log  SET status = iv_status9      aedat = sy-datum10  WHERE vbeln = iv_vbeln.

LZSD_ORDERU04 actualiza ZSD_ORDER_LOG

GRAPH:WRITESSCHEMA:DDIC:ZSD_ORDER_LOG

Un fragmento del grafo de evidencias de un sistema de demostración sintético. Cada línea continua es una relación registrada; la línea discontinua marca un punto no resuelto, que se lista en lugar de registrarse. Un recorrido está resaltado.recorrido resaltadopunto no resuelto (CALL FUNCTION gv_fm): listado, nunca adivinado

03Verificación

Cada relación y cada cita se vuelven a verificar.

Dos verificaciones se ejecutan sobre lo construido, y en este paso no interviene la IA. La app web muestra el resultado de la verificación de citas junto a cada cita.

Cada relación

Verificador del grafo

Revalida cada relación contra su línea de código o su fila exportada citada.

Cada etiqueta

Auditor de citas

Revalida cada etiqueta en cada página del catálogo. Es un script determinista, no una IA.

Junto a cada cita

En la app web

La app muestra el resultado de la verificación junto a cada cita: verificada o con una advertencia.

Cada línea factual lleva su cita

Cinco etiquetas y un marcador, cada uno con un solo significado.

CODE
La línea exacta de su código fuente ABAP o CDS, numerada como en el editor ABAP (SE80).
GRAPH
Una relación registrada en el grafo de evidencias, por ejemplo este programa lee esa tabla. Siempre va acompañada de la línea de código o de la fila exportada de la que proviene.
SCHEMA
La definición del Diccionario ABAP: una tabla, un campo, un elemento de datos, un dominio o un mensaje.
EXPORT
Una fila concreta de un archivo exportado: la configuración, el índice de la lista de utilización (where-used) de SAP, la lista de transacciones o de jobs, o el inventario de objetos y paquetes.
INFERRED
Una deducción o un límite declarado, marcado claramente como no evidencia.
SME-REVIEW-REQUIRED
Una pregunta para su experto en la materia cuando la evidencia es insuficiente. Nunca se completa adivinando.
Código del include LZSD_ORDERU01, numerado como en SE80, con las líneas citadas marcadas y la línea 55, INSERT zsd_order_log FROM ls_log., resaltada.
Panel de código fuente. En la app web, una cita abre el código fuente en su línea, para que el lector también pueda verificarla. Pantallas de un sistema de demostración sintético. Tamaño completo

Límite declarado: La revalidación demuestra que cada cita apunta a evidencia real que coincide con ella. No demuestra que una interpretación de negocio sea correcta. Por eso los Paquetes de validación terminan con la aprobación de su experto en la materia.

04Cifras del piloto

El piloto, en cifras.

Análisis automático de un sistema SAP S/4HANA productivo.Nota 1 Las notas debajo de las cifras indican qué cubre cada una y qué no.

313.202

líneas de ABAP analizadas

2.387

objetos a medida inventariadosNota 2

13.480

relaciones con evidencia verificadaNota 3

0

fallos al revalidar cada relaciónNota 4

1 día

de la exportación a la documentaciónNota 5

De dónde vienen las 13.480 relaciones

12.739de una línea de código ABAP / CDScitadas como CODE
535de una fila de configuración exportadacitadas como EXPORT
206del índice de la lista de utilización de SAPcitadas como EXPORT
13.480relaciones, 0 fallos

Además: 14.571 datos del Diccionario ABAP (tablas y campos).

Código y configuración, conectados

  • 84 vías de pago
  • 55 formatos de soporte de pago
  • 7 árboles DMEE
  • 19 BAdIs implementados
  • 9 proyectos CMOD
  • 4 tipos de mensaje IDoc
  • 327 llamadas a BAPIs
  • 83 diálogos de mantenimiento
  • 4.867 entradas del log de modificaciones SAP

05Lo que produce

Cuatro resultados construidos sobre la misma evidencia.

El catálogo y el mapa de procesos se generan sin IA. Los Paquetes de validación y la función Preguntar a la IA usan IA, solo con su autorización registrada. Los roles que redactan y revisan los Paquetes de validación se ejecutan con Anthropic Claude o con OpenAI; las traducciones verificadas al español de los Paquetes de validación y la función Preguntar a la IA usan OpenAI.

  • Construido sin IA

    Un catálogo con citas, una página por objeto

    • Páginas de módulos, del diccionario e índices (transacciones, jobs, puntos de entrada, ampliaciones y exits, configuración, modificaciones SAP, interfaces y dependencias de SAP), un inventario de objetos y un registro de cobertura del análisis.
    • Cada línea factual lleva su cita. Indica qué hacen el código y la configuración, y dónde; nunca el propósito de negocio.
    • Páginas Markdown simples con enlaces wiki, que también pueden generarse como un sitio web estático para consultar sin conexión. Pregúntenos si los archivos forman parte de su contratación.
  • Construido sin IA

    Un mapa de procesos, propuesto a partir de la evidencia

    • Un algoritmo determinista agrupa el código propio en procesos de negocio. Cada objeto escrito a mano pertenece exactamente a un proceso.
    • Cada proceso se ancla en lo que lo inicia (transacciones, jobs, configuración, llamadores SAP) y se clasifica en los niveles A, B y C.
    • Los nombres provienen de textos registrados en SAP. La agrupación es una propuesta, no una afirmación sobre el propósito de negocio.
  • IA, con su autorización registrada

    Paquetes de validación que aprueban sus expertos

    • Un dominio o proceso de negocio de principio a fin, en ocho secciones fijas, desde el resumen hasta la lista de verificación.
    • Tres controles automáticos se ejecutan antes de que lo vea un experto, y ninguno se puede omitir ni dar por superado.
    • Su experto en la materia confirma los puntos marcados SME-REVIEW-REQUIRED y da su aprobación, con lo que el documento queda publicado.
    1. Validador de documentación
    2. Tríada de validación
    3. Auditor de citas
    4. Aprobación del experto
  • IA, desactivada por defecto

    Preguntar a la IA, con evidencia numerada

    • Preguntas en lenguaje natural, en cualquier idioma. La respuesta llega en español o en inglés.
    • Preguntar a la IA cita evidencia numerada y no puede agregar evidencia propia. El auditor de citas revalida cada elemento, enlazado a su línea de código.
    • Una respuesta sin evidencia se marca como “no verificada”. La función Preguntar a la IA sigue desactivada hasta que se registre su autorización.

    Las respuestas son generadas y pueden estar incompletas; el código enlazado es la referencia.

    La app también lo dice.

06Actualización

Después de cada release, vuelva a ejecutar la exportación.

No hay conexión en vivo con SAP. Una actualización es una nueva exportación, que se construye y se verifica por separado antes de publicarse.

  1. Vuelva a ejecutar la exportación.

    Después de un release, usted ejecuta el mismo reporte de solo lectura y entrega el nuevo archivo.

  2. Se reconstruye y se audita de nuevo.

    El grafo, el catálogo y el mapa de procesos se regeneran, y cada cita se audita de nuevo. La nueva versión se construye y se verifica por separado, en ambos idiomas.

  3. Se publica, con posibilidad de volver atrás.

    La versión anterior se archiva y se puede restaurar. Las cuentas de usuario, las aprobaciones y los Paquetes de validación se conservan entre actualizaciones.

Límite declarado: Los Paquetes de validación no se reescriben automáticamente. Un Paquete de validación que se regenera debe superar de nuevo los controles.

La suscripción cubre esto: actualización tras cada release, IA incluida y soporte.

Cómo empezar

07El método CodeGraph

Un método, aplicado a SAP.

CodeGraphAI for SAP está construido sobre CodeGraph, un método independiente de la tecnología para documentar sistemas de software a partir de la evidencia.

Las cinco fasesMétodo

  1. Ingesta del código fuente. El grafo de evidencias, con la evidencia registrada en cada relación.

  2. Documentación del dominio. Paquetes de validación con tres controles: Validador de documentación, Tríada de validación (Defensor, Retador y Juez) y Auditor de citas.

  3. Capa de referencia. Para SAP, el catálogo con citas: una página por objeto, generada sin IA.

  4. Descubrimiento de procesos. Para SAP, el mapa de procesos: el código propio agrupado en procesos de negocio, sin IA.

  5. Ensamblado del repositorio documental (vault). Para SAP, el catálogo ensamblado como páginas Markdown simples con enlaces wiki, que también pueden generarse como un sitio web estático.

Sus prácticas centrales

  • La evidencia se registra al crear cada relación.
  • El grafo se consulta con plantillas fijas.
  • Lo que redacta la documentación se mantiene separado de lo que la verifica.
  • Los vacíos se declaran con honestidad, como preguntas SME-REVIEW-REQUIRED para su experto.

Método: “CodeGraph” por sí solo nombra únicamente el método. El producto es CodeGraphAI for SAP.

Qué necesita el método y su equivalente en SAP
El método necesitaEn SAP
Una exportación del código fuente con números de línea establesEl reporte de solo lectura, que conserva la numeración de SE80
Un analizador o extractor para el lenguaje, que emita objetos y relaciones con origen, archivo, línea y nivel de confianzaUn extractor de ABAP más un constructor del grafo
Las definiciones del esquema de la base de datosEl Diccionario ABAP
Opcionalmente, una referencia cruzada del compilador para las relaciones de mayor confianzaEl índice de la lista de utilización de SAP
La configuración o las conexiones que inician el códigoTransacciones, jobs, IDoc, pagos, BAdI y CMOD
Un almacén del grafo, un generador determinista del catálogo con citas, un verificador del grafo y un auditor de citasEl grafo de evidencias, el catálogo, el verificador y el auditor que describe esta página
Roles de IA con controles para los documentos de negocio, más la revisión de expertos humanosLos Paquetes de validación y la aprobación de su experto en la materia

Más allá de SAP. Hoy la única implementación del método es para SAP. ¿Tiene otra tecnología? El mismo método se aplica a cualquier base de código una vez que se construye un analizador para su lenguaje.

Una demo guiada con nuestro equipo: la app web, el grafo de evidencias y una página del catálogo con citas.