martes, 21 de mayo de 2019

► Fichero con el listado de tablas del modelo

Esta entrada es una variación de la que hablaba de cómo exportar todas las tablas de un modelo.
Me encuentro ahora en la siguiente situación: Tengo un cuadro de mandos que hace un BINARY de otro, pero sólo necesito algunas tablas del CdM original, por lo que tengo que borrar las que me sobran.
Por alguna razón otro desarrollador ha modificado el CdM original y han desaparecido tablas, por lo que ahora mi cuadro de mandos me falla con el siguiente error:


En condiciones normales bastaría con mirar en el visor de tablas las tablas que tenemos e ir comparando con las que se borran en el script. Pero resulta que nuestro modelo tiene muuuuchas tablas que no caben en pantalla a no ser que se reduzca la resolución del visor de tablas, y en ese caso los nombres de las tablas dejan de ser visibles.

Por tanto necesitamos algún sistema que nos saque un listado de las tablas del modelo.

Existen 2 soluciones:

1º la más fácil:
Antes del punto que provoca el error interrumpimos el script con un exit script:
En cualquier pestaña de visualización creamos un cuadro de lista donde el campo elegido es el campo del sistema $Table.
Una vez que tengamos la lista la podemos exportar a excel.

2º Desde el script:
Antes del punto que provoca el error escribimos el siguiente código que recorre las tablas del sistema, mete sus nombres en una tabla temporal, exporta la tabla y luego la borra:


LET numTablas = NoOfTables();

FOR i = 0 to $(numTablas)-1
       LET Tabla= TRIM(TableName($(i)));
          
       Mis_Tablas:
       LOAD '[$(Tabla)]' as NombreTabla
       AUTOGENERATE 1;
      
      Store Mis_Tablas INTO Mis_Tablas.txt (txt);
NEXT i

Drop table Mis_Tablas;

exit script;