En este tutorial vamos aprender a iniciar y cerrar sesión en MicroStrategy con Java y nos servirá como base para los próximos tutoriales que creare para buscar usuarios, inhabilitarlos o lanzar eventos entre otros. Aprender este tutorial es fundamental ya que si se realiza mal, podríamos dejar sesiones abiertas en el servidor o simplemente no conectarnos y nuestro programa no funcionará.
Especificaciones del entorno
- Microsoft Windows 10
- MicroStrategy 2020 update 2
- SDK MicroStrategy 2020
- Eclipse 2019-12
Proyecto Java
Crear el proyecto
- Abre Eclipse.
- Desde menu File, selecciona New y haz clic en Java Proyect.
- Escribe un nombre para tu proyecto.
- Pulsa Siguiente y en la nueva ventana haz clic en la pestaña Libraries para incluir las librerías que necesitamos para este proyecto.
- Haz clic en el botón Add External JARs…
- Si tu instalación Web es ASP accede a la ruta Program Files (x86) > Common Files > MicroStrategy o si es JSP {web_root}/WEB-INF/lib, busca y haz doble clic sobre el fichero MALicMgr.jar. También deberás agregar el fichero websdk.jar
- Pulsa en el botón Finish.
Crear el paquete y la clase
- Sobre la carpeta src de nuestro nuevo proyecto haz clic derecho y crea un nuevo paquete. Dale un nombre y finaliza.
- Haz clic derecho sobre el paquete y crea una nueva clase.
Importación de clases
Sobre la clase que acabamos de crear necesitamos importar otras clases tanto de Java como de MicroStrategy para el buen funcionamiento del programa.
- Escribe entre las palabras package y public las siguientes líneas:
import com.microstrategy.web.objects.WebIServerSession; import com.microstrategy.web.objects.WebObjectsException; import com.microstrategy.web.objects.WebObjectsFactory;
Código para iniciar y cerrar sesión
Escribe el siguiente código dentro de tu clase. El código debe quedar similar al siguiente:
public class Principal { private static WebObjectsFactory factory = null; private static WebIServerSession sesionServidor = null; //Metodo principal que llamara a los métodos iniciar y cerrar sesion public static void main(String[] args) throws WebObjectsException, IllegalArgumentException { iniciarSesion(); cerrarSesion(sesionServidor); } //Metodo para iniciar sesión public static WebIServerSession iniciarSesion() { if (sesionServidor == null) { factory = WebObjectsFactory.getInstance(); sesionServidor = factory.getIServerSession(); //Nombre del servidor MicroStrategy sesionServidor.setServerName("DESKTOP-5DQNOAI"); sesionServidor.setServerPort(0); //Nombre del proyecto sesionServidor.setProjectName("MicroStrategy Tutorial"); //Usuario y pass para conectarse sesionServidor.setLogin("Administrator"); sesionServidor.setPassword(""); try { System.out.println("Sesión creada con ID: " + sesionServidor.getSessionID()); } catch (WebObjectsException ex) { mostrarError(null, "Error al crear la sesión:" + ex.getMessage()); } } return sesionServidor; } //Metodo para cerrar la sesion public static void cerrarSesion(WebIServerSession sesionServidor) { try { sesionServidor.closeSession(); } catch (WebObjectsException ex) { System.out.println("Error al cerrar la sesión:" + ex.getMessage()); return; } System.out.println("Sesión cerrada."); } //Metodo al que llamaremos en caso de error para cerrar la sesion public static void mostrarError(WebIServerSession sesionServidor, String mensaje) { System.out.println(mensaje); if (sesionServidor != null) { cerrarSesion(sesionServidor); } System.exit(0); } }
Resultado
Si ejecutamos el código anterior nos indicara si se ha iniciado la sesión y si la ha cerrado.