Crear una carpeta en MicroStrategy con Java

En esta entrada vamos aprender a crear una carpeta en MicroStrategy con Java. Utilizaremos Eclipse como herramienta para escribir y ejecutar el código Java. Partiremos de un tutorial anterior donde aprendimos a iniciar y cerrar sesión correctamente y lo complementaremos con el código de este articulo.

Especificaciones del entorno

  • Microsoft Windows 10
  • MicroStrategy 2020 update 2
  • SDK MicroStrategy 2020
  • Eclipse 2019-12

Proyecto Java

Punto de partida

Este tutorial presupone que ya has creado un Proyecto Java y que se ha creado el paquete y la clase principal estableciendo la conexión al servidor de Microtrategy. Si no es así, puedes seguir este tutorial para realizarlo antes de continuar.

Importación de clases

Para crear una carpeta en MicroStrategy con Java es necesario importar las siguientes clases adicionales a las que ya has utilizado para iniciar sesión.

  • Escribe después de la definición package las siguientes líneas:
import javax.swing.JOptionPane;
import com.microstrategy.web.objects.WebObjectInfo;
import com.microstrategy.web.objects.WebObjectSource;
import com.microstrategy.webapi.EnumDSSXMLObjectTypes;
import com.microstrategy.web.objects.WebFolder;
import com.microstrategy.webapi.EnumDSSXMLApplicationType;
import com.microstrategy.webapi.EnumDSSXMLObjectFlags;
import com.microstrategy.webapi.EnumDSSXMLObjectSubTypes;

Código para crear una carpeta

  • Situate entre los métodos main e iniciarSesión
  • Escribe el siguiente código:
public static void crearNuevaCarpeta() throws WebObjectsException, 
IllegalArgumentException {
    	 try {
    		 WebObjectSource fuente = factory.getObjectSource();
    		 fuente.setFlags(EnumDSSXMLObjectFlags.DssXmlObjectTotalObject);
    		 sesionServidor.setApplicationType(EnumDSSXMLApplicationType.
    		     		 DssXmlApplicationCustomApp);

    		 //Creamos el objeto
    		 WebObjectInfo nuevaCarpeta = fuente.getNewObject(
    		     		 EnumDSSXMLObjectTypes.DssXmlTypeFolder,  
    				 EnumDSSXMLObjectSubTypes.DssXmlSubTypeFolder);
    		 nuevaCarpeta.populate();
    		   
    		 //Definimos el ID de la carpeta padre
    		 WebObjectInfo infoCarpetaPadre = fuente.getObject(
    		     		 "5C6A68174DC3E55B31C80EB653259E0E", 	   
    				 EnumDSSXMLObjectTypes.DssXmlTypeFolder);
    		 WebFolder carpetaPadre = (WebFolder)infoCarpetaPadre;

    		 //Guardamos la nueva carpeta dentro de la carpeta padre
    		 fuente.saveAs(nuevaCarpeta,"Nueva Carpeta",carpetaPadre, true);
    		 
    		 System.out.println("Carpeta creada.");
    		 JOptionPane.showMessageDialog(null, "Carpeta creada");
    	 }
    	 catch (WebObjectsException | IllegalArgumentException ex) {
    		 mostrarError(sesionServidor, "Error al crear la nueva carpeta:" 
    		     		 + ex.getMessage());
    		 JOptionPane.showMessageDialog(null, "Error al crear la nueva carpeta:" 
    		     		 + ex.getMessage());
    	 }
     }
  • Ubicate en el método main y escribe entre las llamadas a los métodos iniciarSesion y cerrarSesion la llamada al nuevo método escribiendo crearNuevaCarpeta();

Resultado

Si ejecutamos el código anterior se nos mostrara una ventana indicando si se ha creado la carpeta o se ha producido un error.

Importante

Este código no comprueba si la carpeta ya existe. Si la carpeta ya existiera en la misma ruta se creara de nuevo y se borrara todo su contenido.

Ahora puedes exportar tu código o seguir modificando tu programa.

Escribir un comentario