Hay casos en los que desea brindarle al usuario la posibilidad de exportar datos a un archivo CSV. Sí, muchos de los componentes tienen esta capacidad incorporada, sin embargo, algunos como el Editor de tablas SQL pueden tener datos paginados y la exportación incorporada solo exporta la página de datos en la que se encuentra. O quizás los datos que vas a exportar no se muestran en el tablero a través de un componente. En este ejemplo una función se ejecutará presionando un botón y exportará los miembros de la dimensión a un archivo CSV. En este caso, se trata más bien de una exportación de metadatos frente a datos; sin embargo, el proceso sigue siendo el mismo. Reúna los datos, cárguelo en una matriz de bytes y luego guárdelo en la estructura de carpetas de archivos de la base de datos de la aplicación.
Para lograr esto, usaré la función brapi.filesystem.InsertOrUpdateFile.
brapi.FileSystem.InsertOrUpdateFile(si,XFfileData)
Esta función requiere un par de parámetros que a su vez requerirán un par de funciones más con varios parámetros cada una.
Para la regla comercial de Dashboard Extender.
Paso 1 – Defina la ruta del archivo y el nombre al que se exportará el archivo. Lo exportaré a la carpeta Archivo de base de datos de la aplicación debajo de la carpeta del usuario. Observe que elimino los espacios de el nombre de usuario, ya que así es como OneStream nombra la carpeta de usuario.
'Exportar ruta y nombre del archivo
Dim fileName As String = "CorpAccounts.csv"
Dim filePath As String = $"Documents/Users/{StringHelper.RemoveSystemCharacters(si.UserName,False,False)}"
Paso 2 – Definir la dimensión a exportar. Para fines de demostración, lo he codificado en la regla comercial.
'Dimensión a exportar
Dim accountDimPk as DimPk = BRApi.Finance.Dim.GetDimPk(si, "CorpAccounts")
Paso 3 – Obtenga todos los descendientes de la dimensión y cárguelos en una lista.
'Incorpore a los descendientes de la Dimensión a una lista
Dim listOfParents As list(Of memberinfo) = BRApi.Finance.Members.GetMembersUsingFilter(si, accountDimPk, "A#[Income Statement].descendants.Where(HasChildren = true)", False)
Paso 4 – Recorra la lista y agregue los miembros de la lista a un objeto generador de cadenas.
'Recorre la lista y agrega los miembros a un objeto StringBuilder
Dim csv As New Text.StringBuilder
For Each parentMember In listOfParents
For Each childMember in BRApi.Finance.Members.GetChildren(si, accountDimPk, parentMember.Member.MemberId)
csv.AppendLine($"""{childMember.name}"",""{childMember.Description}"",""{parentMember.member.name}""")
Next
Next
Paso 5 – Convierta el objeto String Builder en una matriz de bytes.
'Convertir cadena a matriz de bytes
Dim fileBytes As Byte() = system.Text.Encoding.Unicode.GetBytes(csv.toString)
Paso 6 – Guarde el archivo CSV en el sistema de archivos.
'Guardar csv en el archivo
Dim XFfileDataInfo As New XFFileInfo(FileSystemLocation.ApplicationDatabase,fileName,filePath)
Dim XFfileData As New XFFile(XFfileDataInfo, String.Empty, fileBytes)
brapi.FileSystem.InsertOrUpdateFile(si, XFfileData)
El código completo.
Ahora para ejecutar la regla de negocio
Para esta demostración, la ejecutaré desde un botón en un tablero.
Llamar a la regla de negocio desde el botón.
Lo que en este ejemplo exportará los miembros de la dimensión en mi aplicación desde la dimensión CorpAccounts.
Lo que exportará los elementos secundarios de la dimensión CorpAccounts a un archivo CSV y escribirá el archivo en la carpeta Base de datos de la aplicación/Usuarios/vanderms. (vanderms es mi nombre de usuario en esta aplicación).
El archivo CSV ahora contiene los miembros de la dimensión.
Funcionalidad útil, que aunque en este ejemplo exporto miembros de dimensión, también la he usado para exportar datos de cubo, datos de tablas relacionales personalizadas, así como cualquier dato que pueda cargar en una tabla de datos de VB.
¿Quiere obtener más información sobre las dimensiones de atributos y el software OneStream? Complete el siguiente formulario y nos comunicaremos con usted en breve.
OneStream CPM
OneStream se alinea con las necesidades de su negocio y cambia más rápida y fácilmente que cualquier otro producto al ofrecer una plataforma y un modelo para todas las soluciones financieras de CPM. OneStream emplea guiado Flujos de trabajo, validaciones y mapeo flexible para brindar confianza en la calidad de los datos para todas las recopilaciones y análisis al tiempo que se reduce el riesgo a lo largo de todo el proceso financiero auditable.