En MicroStrategy Command Manager podemos realizar scripts sencillos como obtener un listado de todas las métricas o indicadores, pero cuando queremos hacer un proceso donde el resultado de una ejecución sea el inicio de otra debemos utilizar los procedimientos de la herramienta.
Supongamos que queremos ver del proyecto «Enterprise Manager» todas las propiedades de las métricas o indicadores de una carpeta en concreto «\Public Objects\Metrics\OLAP Services Metrics». Podríamos ir una por una desde Developer:
Pero todo es mucho más sencillo haciendo un procedimiento. Copiaros el siguiente código en un fichero de texto y después guardarlo con extensión .cmp que es la correspondiente a los procedimientos de Command Manager.
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> <PROCEDURE_DEFINITION> <DESCRIPTION>Este ejemplo muestra todas las propiedades de todas las metricas de una carpeta y proyecto en concreto</DESCRIPTION> <CODE> ResultSet oMetrics = executeCapture("LIST ALL METRICS IN FOLDER '" + vCarpeta + "' FOR PROJECT '" + vNombreProyecto + "';"); oMetrics.moveFirst(); while (!oMetrics.isEof() ){ //obtenemos el nombre y la ruta de cada metrica String sNombreIndicador = oMetrics.getFieldValueString(DisplayPropertyEnum.NAME); String sCarpetaIndicador = oMetrics.getFieldValueString(DisplayPropertyEnum.PATH); String sQuery = "LIST ALL PROPERTIES FOR METRIC \"" + sNombreIndicador + "\" IN FOLDER \"" + sCarpetaIndicador +"\" FOR PROJECT \"" + vNombreProyecto + "\";"; printOut("list properties for metric \"" + sNombreIndicador + "\""); execute(sQuery); oMetrics.moveNext(); }</CODE> <VERSION>1.0</VERSION> <TYPE>SAMPLE</TYPE> <INPUT_PARAMS> <INPUT INPUT_TYPE="STRING">vNombreProyecto</INPUT> <INPUT INPUT_TYPE="STRING">vCarpeta</INPUT> </INPUT_PARAMS> <CLASSPATH/> <TEST_INPUT> <TEST_INPUT_PARAM>Enterprise Manager</TEST_INPUT_PARAM> <TEST_INPUT_PARAM>\Public Objects\Metrics\OLAP Services Metrics</TEST_INPUT_PARAM> </TEST_INPUT> <TEST_CONNECTION_INFO> <TEST_PSN_NAME/> <TEST_USERNAME/> </TEST_CONNECTION_INFO> </PROCEDURE_DEFINITION>
Abrir el fichero que habéis guardado en Command Manager. Al iniciar la herramienta iniciar sesión y en el menú «Archivo» seleccionar «Abrir Procedimiento» y buscar el fichero.
En la pestaña «Editor de código» se puede observar lo siguiente:
- Línea 2: capturamos el resultado de listar todas los indicadores de la carpeta que escribiremos en la variable vCarpeta del proyecto que asignemos a vNombreProyecto.
- Línea 3: seleccionamos el primer indicador que ha encontrado.
- Línea 4: mientras que el conjunto de resultados guardado en oMetrics tenga resultados hará lo que este dentro del {} por cada indicador encontrado.
- Línea 6: definimos una variable de tipo cadena y le asignamos el nombre del indicador encontrado.
- Línea 7: definimos una variable de tipo cadena y le asignamos la ruta de donde esta el indicador.
- Línea 8: definimos una variable de tipo cadena donde almacenamos la query a ejecutar posteriormente. La query nos devolverá todas las propiedades del indicador encontrado
- Línea 9: mostrar el resultado
- Línea 10: ejecutar el contenido de la variable sQuery definida en la linea 8.
- Línea 11: asignar a la variable oMetrics el siguiente indicador a analizar.
En el margen derecho de Command Manager encontramos la pestaña «Información de prueba» donde debeis conectaros y asignar valores a las variables de nombre de proyecto y nombre de carpeta que utilizara el procedimiento:
Una vez definido las variables y conectado al servidor hay que pulsar el icono amarillo «Ejecutar» o pulsar Ctrl+E. Cuano termine de ejecutar mostrara todas los indicadores de la carpeta indicada con sus propiedades.
Si se hace click derecho sobre los resultados, se pueden exportar a Excel para una fácil lectura.