Propósito
En esta ocasión vamos a ver un ejemplo de un procedimiento que es capaz de leer un fichero txt y usar sus valores como parámetro de entrada. Este procedimiento está preparado para que el fichero pueda o no contener un encabezado y únicamente debe tener una columna.
Ficheros a descargar
Podéis descargarlos el procedimiento haciendo clic aquí. Este fichero incluye un txt de ejemplo.
Explicación del código
A continuación se explica el código linea a linea o bien se puede abrir el procedimiento descargado desde MicroStrategy Command Manager (Menú Archivo > Abrir Procedimiento) donde podéis encontrar las líneas de código con el detalle de lo que realiza cada paso.
// Creado por MiguelTroyano.com // Se configura la lectura del txt con java File ficheroTxt = new File(sFicheroEntrada); Scanner scanCount = new Scanner(ficheroTxt); Scanner scanner = new Scanner(ficheroTxt); // Mostramos el fichero a procesar y sus permisos printOut("El fichero a procesar es: " + sFicheroEntrada); printOut("El fichero existe: " + ficheroTxt.exists() + " | Permisos de ejecución: " + ficheroTxt.canExecute() + " | Permisos de lectura: " + ficheroTxt.canRead()); // Si la variable sEncabezado esta a true saltamos la primera linea if ( sEncabezado ){ scanCount.nextLine(); scanner.nextLine(); } // Se cuentan las lineas del fichero int numLineas = 0; while ( scanCount.hasNextLine() ) { numLineas++; scanCount.nextLine(); } printOut("Se van a procesar " + numLineas + " lineas."); // Se recorre linea a linea y se ejecuta la acción ubicada dentro del bucle while ( scanner.hasNextLine() ) { String sValor = scanner.nextLine(); execute("LIST ALL PRIVILEGES FOR USER \"" + sValor + "\" ;" ); }
Si se observa el código, el procedimiento va leyendo el fichero de texto linea por línea que contiene el nombre de usuarios. El resultado es que muestra los privilegios de cada uno de los usuarios que figuran en el fichero de texto.
El procedimiento tiene dos parametros de entrada que debes informar antes de ejecutarlo:
- sFicheroEntrada: dirección completa de la ubicación del fichero de texto
- sEncabezado: se debe indicar true si el fichero de texto tiene encabezado o false si no lo tiene.
Resultado
El resultado y los mensajes de la ejecución es el siguiente: