Iniciar y cerrar sesión en MicroStrategy con Java

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.

Escribir un comentario