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.