Truco 122. Algunas utilidades para obtener información de tablas.


En el trabajo día a día con Sap como consultor funcional o técnico, es imprescindible tener un conocimiento mínimo del módelo de datos del sistema y conocer las tablas más importantes y sus relaciones. Eso nos permite, por ejemplo:

  • Obtener información de los datos maestros o documentos ante cualquier requerimiento.
  • Poder realizar comprobaciones de una forma rápida. Por ejemplo, despues de haber terminado unas cargas iniciales, comprobación de procesos de integración, analisis de incidencias, pruebas de nuevos desarrollos o cambios en la parametrización, etc.
  • Preparar especificaciones para los desarrolladores, donde indicamos que chequeos o condiciones se han de cumplir en un determinado desarrollo.
  • Conocer la lógica de funcionamiento de la aplicación y como los procesos funcionales se traducen en datos registrados en la base de datos.

En Intenert hay multitud de información sobre las tablas más importantes existentes en cada módulo y podeís encontrar sin problema entradas donde se enumeran con mayor o menor detalle las tablas de cada módulo o ambito funcional especifico (por ejemplo, MM, SD, etc.).

Pero siempre es útil conocer algunos otros pequeños trucos que nos permitan localizar las tablas estandar/Z u otros elementos, y que nos puedan sacar de algún apuro. Aquí los dejo.

Transacción SE16T. Encontrar las tablas de aplicacion sin conocer nada del sistema.

Hablamos hace tiempo de las nuevas transacciones SE16X y como utilizar la transacción SE16T para buscar tablas en el sistema.

Básicamente, seleccionamos la función de búsqueda de tablas e indicamos el concepto a buscar (pudiendo seleccionar búsqueda por texto o por nombres de campo).

El sistema nos devuelve la lista de tablas que cumplen las condiciones.

Vista DD03VV. Localizar tablas por campos, elementos de datos o dominios.

La vista DD03VV ( Vista de campos tabla – Sistema Info ) nos permite realizar la busqueda en el diccionario de datos por nombre de tabla, campo, elemento de datos o dominio. Yo la suelo utilizar para buscar las tablas Z en un sistema o localizar tablas de parametrización que se que utilizan un determinado elemento de datos o dominio.

Podemos consultarla con la transacción SE16N. En mi ejemplo, estoy buscando tablas Z que tengan el elemento de datos del centro (*WERK*). Es importante indicar la clase de tabla del tipo TRANSP para limitar los resultados de búsqueda a tablas de datos transparentes.

En los resultados obtengo toda la información para localizar las tablas que estoy buscando. Posteriormente podré acceder a la SE11 para ver la definición de las tablas y la lista completa de sus campos.

También puede ser interesante conocer la tabla DD03L, donde se guarda la información de los campos que contienen una tabla.

Tabla TCDOB. Obtener el objeto del log de modificaciones de una tabla.

El log de modificaciones de una tabla nos permite registrar los cambios que se realizan en los datos y luego poder consultarlos, normalmente desde las misma funcionalidad, de forma que podemos ver quien realizo los cambios, cuales fueron estos (valores anteriores/valores nuevos) y en que momento.

La información de modificaciones se registra en las tablas CDHDR y CDPOS. La primera tabla contiene un número de documento de modificación, estando en la CDPOS el detalle de los cambios, campo por campo. Los cambios se registran usando un identificador de objeto (código que identifica su tipología), el valor del objeto (el número del documento o datos maestro concreto) y un documento de modificación.

Recordad que podemos activar el log de modificaciones de una tabla estandar o una tabla Z desde las opciones técnicas en la transacción SE11 del diccionario de datos (siempre con los pertinentes chequeos con el equipo de desarrollo o basis para no provocar problemas de rendimiento en el sistema).

Cuando necesitamos obtener de forma másiva los cambios que se han realizado en un objeto, los más complicado es localizar el nombre del objeto (campo OBJECTCLAS), con el que se guardan los cambios en las tabla.

Para localizar este nombre de objeto, utilizaremos la tabla TCDOB, a través de la SE16N.

En mi ejemplo, estoy localizando la clase de objeto con la que se guardan los cambios en los Business Partners que creamos desde la transacción BP (tabla BUT000).

El objeto con el que se guardaran los cambios en el log de modificaciones será el BUPA_BUP. Con ese valor ya podremos atacar directamente las tablas para obtener la información requerida y visualizar los cambios realizados en los elementos objeto del análisis.

Obtener la vista de actualizacion para una tabla de parametrización.

Otra necesidad muy habitual es tener localizar las vistas de parametrización asociadas a una tabla. Es decir, tenemos la tabla donde esta la parametrización, pero no recordamos el lugar en la SPRO donde realizar los cambios.

Para esto, tenemos dos opciones desde la transacción SM30. Una vez en la transacción, indicaremos el nombre de la tabla (en mi ejemplo, la tabla T001 Almacenes en Gestión de Materiales) y:

1) Customizing: realiza una búsqueda en la configuración de sistema y nos ofrece una lista más o menos útil con los puntos de parametrización relacionados con la tabla.

2) Buscar diálogo de búsqueda: nos devuelve la vista de actualización de la tabla, que corresponden a los diferentes objetos de parametrización y que podremos acceder directamente desde la SM30.

Encontrar las tablas que son llamadas en un programa.

En ocasiones la cosa se complica y necesitamos saber las tablas estandar o de cliente que se utilizan en un determinado programa o transacción. En este caso, tenemos disponibles varias alternativas para localizar las tablas implicadas.

La forma más completa de obtener información es realizar una traza SQL utilizando la transacción ST05. Es importante activar la traza con la opción de filtro, ya que podemos colapsar el sistema con la traza si no se limitan el ámbito de este análisis.

En mi ejemplo, estoy haciendo la traza de un determinado usuario y con una determinada transacción.

A continuación realizaremos el trabajo funcional con el usuario filtrado (hemos accedido a consultar un pedido en la transacción ME22N y le hemos añadido una posición).

Al finalizar, desactivaremos la traza y procederemos a consultar los resultados de esta con la opción «Display Trace».

El sistema nos mostrará una lista de todas las tablas que ha ido leyendo durante la ejecución del programa

Existe otra alternativa para realizar traza con la transacción ANST_SEARCH_TOOL.

Al ejecutar, el sistema nos llevará a la transacción elegida, donde realizaremos la operativa deseada. Al concluir, volveremos a la ANST_SEARCH_TOOL, donde podremos ver la lista de resultados.

Seleccionando la opción de Tables, podremos ver la lista de todas las tablas utilizadas en la transacción, o solo las tablas de parametrización.

Encontrar las CDS asociadas a una tabla SAP.

Desde la transacción SE11, podremos localizar las CDS que se han creado utilizando la tabla, con la opción «Referencia de utilización», seleccionado el area de utilización «Data Definitions».

El sistema nos mostará la lista de DDL.

En el detalle podremos ver el nombre de la vista e información de su definición (es aconsejable utilizar Eclipe para ver la información completa).

Bibliografia.

http://thinkdoforward.com/sap-s-hana-diesen-datenbankview-solltest-du-dir-merken-dd03vv/

https://blogs.sap.com/2020/07/15/how-to-find-sap-table-by-just-knowing-nothing-about-sap-its-true/

https://blogs.sap.com/2020/07/24/how-to-find-change-document-object-from-table-name/

https://blogs.sap.com/2014/01/17/find-changes-logs-for-a-table-using-sm30/

https://blogs.sap.com/2020/08/25/how-to-find-a-search-help-behind-a-transaction-code-in-sap/

https://blogs.sap.com/2020/07/15/in-sap-how-to-find-a-table-behind-a-transaction-code/

Esta entrada fue publicada en Abap, Formacion, S/4HANA, Sap Basis y etiquetada , , , , , , , . Guarda el enlace permanente.

Una respuesta a Truco 122. Algunas utilidades para obtener información de tablas.

  1. borofornes dijo:

    Muy interesante como siempre.
    Gracias.

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.