Difference between revisions of "Analizador de KB java"

From GXtest Wiki
Jump to: navigation, search
(Descarga de versiones)
Line 12: Line 12:
 
* Java JRE 7 o mayor
 
* Java JRE 7 o mayor
 
* SQLServer para guardar la información sobre los objetos. Puede ser local o un equipo remoto, en cualquiera de sus versiones (Express, Enterprise, Developer), 2005 o superior.
 
* SQLServer para guardar la información sobre los objetos. Puede ser local o un equipo remoto, en cualquiera de sus versiones (Express, Enterprise, Developer), 2005 o superior.
* En el SQLServer seleccionado se deberá crear una base de datos vacía, y ejecutar el script "inicializar_bd.sql" incluido en el zip descargado.
+
* En el SQLServer seleccionado se deberá crear una base de datos vacía (se sugiere utilizar el nombre KBInfo)
 +
* Ejecutar el script "inicializar_bd.sql" incluido en el zip descargado. Si no se utilizó el nombre KBInfo para la base de datos del paso anterior, se deberá reemplazar en la línea "use [KBInfo];" por el nombre de la base de datos creada.
  
 
== Configuración ==
 
== Configuración ==

Revision as of 20:15, 22 February 2016

El analizador de KB java es un utilitario específico para KBs generadas en java con GeneXus 9, el cual genera la metadata (archivo gxt) de las pantallas web de la aplicación para que GXtest utilice como KB.

Este utilitario sirve cuando el usuario de GXtest no tiene acceso a la KB o los fuentes de la aplicación, pero sí a los archivos binarios de la app java web (archivos .class).

Además del archivo gxt, el Analizador extraerá información sobre las referencias entre objetos de la KB (cross-reference), los atributos y tablas utilizadas, y las sentencias SQL definidas en cada objeto.

En las siguientes secciones se detalla cómo configurar/utilizar la herramienta, y cómo ver los resultados.

Contents

Requerimientos

La herramienta requiere:

  • .Net framework 4.5.2
  • Java JRE 7 o mayor
  • SQLServer para guardar la información sobre los objetos. Puede ser local o un equipo remoto, en cualquiera de sus versiones (Express, Enterprise, Developer), 2005 o superior.
  • En el SQLServer seleccionado se deberá crear una base de datos vacía (se sugiere utilizar el nombre KBInfo)
  • Ejecutar el script "inicializar_bd.sql" incluido en el zip descargado. Si no se utilizó el nombre KBInfo para la base de datos del paso anterior, se deberá reemplazar en la línea "use [KBInfo];" por el nombre de la base de datos creada.

Configuración

La herramienta necesita ciertas configuraciones para ejecutar ya que no tiene UI, de forma de poder ejecutarla en un proceso automatizado. Todas las configuraciones se realizan en dos archivos con formato xml que se detallan a continuación.


config.xml

<configuration>
	<appSettings>
		<add key="KBName" value="SabadellPruebas"/>
		<add key="KBDescription" value="KB de prueba"/>
		<add key="JREPath" value="C:\Program Files\Java\jre7\bin\java.exe"/>
		<add key="SourcePath" value="D:\temp\sabadell-binarios"/>
		<add key="OutputPath" value="D:\temp\sabadell-binarios\sabadell.gxt"/>
	</appSettings>
</configuration>
  • KBName: nombre de la KB. Se utiliza luego para hacer seguimiento a diferentes versiones de la misma KB y realizar comparaciones de impacto.
  • KBDescription: descripción de la KB (opcional)
  • JREPath: Ubicación del archivo java.exe dentro de la instalación de el JRE o JDK de Java 7 o superior.
  • SourcePath: Directorio donde están ubicado los binarios .class de la aplicación que serán analizados.
  • OutputPath: Nombre y ubicación del archivo gxt que será generado luego del análisis.


AnalizadorKBJava.exe.config

En este archivo se configura la conexión a la base de datos donde se guardará la información obtenida de los objetos.

<configuration>
	...
	<connectionStrings>
	    <add name="KBInfoEntities" connectionString="...;provider connection string="data source=localhost;initial catalog=KBInfo;integrated security=True;... />
	</connectionStrings>
	...
</configuration>

Debe ubicar la sección connectionStrings, y allí modificar:

  • data source: nombre de red o IP del equipo donde está el SQLServer donde se guardará la información
  • initial catalog: nombre de la base de datos. Si se dejó el nombre de base de datos por defecto (KBInfo) en el script de inicialización no será necesario cambiar nada.
  • integrated security: True si se desea utilizar el usuario de Windows para conectarse al SQLServer. En caso de poner False, deberá agregar los campos user y password al string de conexión (por ejemplo: "Integrated Security=False;User Id=myUsername;Password=myPassword").

Ejecución

Para ejecutar el programa se debe configurar los paths anteriores y la conexión a la base de datos. Luego simplemente se ejecuta por linea de comandos el programa: AnalizadorKBJava.exe

En la consola se podrá ver el avance del proceso. Una vez finalizado, los archivos generados estarán en los directorios correspondientes y la información estará cargada en la base de datos.

Información de la KB

El modelo de datos que se almacena en la base de datos con la información de los objetos contenidos en la KB es el siguiente:


ModeloDatos AnalizadorKB.PNG


Las tablas contienen la siguiente información:

  • KBs: Se identifican por el nombre de KB definido en el xml de configuración al realizar el análisis
  • KBVersions: Cada vez que ejecutamos un análisis sobre la misma KB (identificada por su nombre), se genera una nueva versión. Toda la información sobre los objetos se asocia a esta versión. Esto permite realizar luego un análisis de impacto de los cambios entre versiones.
  • Objetos: Todos los objetos detectados y analizados, asociados a una determinada versión.
  • Atributos: Todos los atributos detectados y analizados, asociados a una determinada versión.
  • ObjetoAtributos: Los atributos que cada objeto utiliza.
  • ObjetoCampos: Los campos o controles que tiene cada pantalla (objeto web).
  • ObjetoClases: Las clases java asociados a cada objeto GeneXus.
  • ObjetosRelacion: Los objetos que invoca o llama cada objeto.
  • ObjetoSQLs: Las sentencias SQL que potencialmente pueden ejecutarse al utilizar/invocar el objeto. Además contiene información sobre las tablas accedidas y el tipo de operación (INSERT, UPDATE, DELETE)


Ejemplos de consultas útiles

Objetos que acceden a la tabla FSFI10:

SELECT ObjTipoCodigo, ObjNombre, ObjSQL FROM ObjetoSQLs WHERE KBNombre = 'SabadellPruebas' and KBVersion = '20160218-141845' 
 and ObjTablas LIKE '%FSFI10%'


Objetos que modifican registros en la tabla FSA006:

SELECT ObjTipoCodigo, ObjNombre, ObjSQL FROM ObjetoSQLs WHERE KBNombre = 'SabadellPruebas' and KBVersion = '20160218-141845' 
 and OBjOperacion = 'update' and ObjTablas LIKE '%FSA006%'


Objetos que son llamados desde el Webpanel SALDO:

SELECT * FROM ObjetosRelacion WHERE KBNombre = 'SabadellPruebas' and KBVersion = '20160218-141845' 
 and ObjTipoCodigo='W' and ObjNombre LIKE '%SALDO%'

Descarga de versiones