© 2015-2026. MindStreamAnalytics.com

Blog de OneStream: Cómo formatear columnas de vista de cubo según la varianza con XFBR

Comprender el desafío del formato de la vista de cubo en OneStream

Caso práctico: Se le ha solicitado que formatee el color de fondo de una columna dentro de una vista de cubo, basándose en la varianza de las cantidades de celdas en la columna con respecto a las cantidades de celdas en otra columna de datos en la misma vista de cubo. Piensa: "No hay problema, las vistas de cubo admiten formato de celda condicional. Hay muchas opciones en el cuadro de selección "Formato de celda". Lo tengo controlado".

Formato de celda de columna de OneStream

Entonces, empiezas a revisar las opciones del generador de sentencias "If" para formato condicional y te das cuenta de que no hay opciones para comparar con otra columna. "¿Qué? ¿Cómo es que esto no es una funcionalidad integrada?", piensas. No, no hay ninguna opción en el formato de la vista de cubo para seleccionar la cantidad de celdas de datos de otra columna. Entonces, ¿cómo puedes hacerlo? Usando un XFBR.

Solución: Cree un XFBR que recupere las cantidades de las celdas de datos de las dos columnas en las que desea basar su análisis de varianza y que devuelva todos los miembros de fila que necesitan formato. Combine esa lista de nombres de miembros de fila con la función de formato de celda "If (RowE1MemberName in") y obtendrá un formato de celda basado en la varianza entre dos celdas.

1. Crea tu vista de cubo. En este ejemplo, tengo "Cuentas" en las filas y 12 meses en las columnas. Quiero cambiar el color de fondo de la columna 2 (febrero de 2021) si el importe de la celda es menor que el de la columna 1 (enero de 2021).

Explorador de datos de OneStream

2. Cree un XFBR que se llamará desde el formato de celda de la columna 2 (febrero de 2021). Este XFBR debe recorrer todos los importes de las celdas de la columna 1, compararlos con los de la columna 2 y devolver una lista de todas las cuentas donde los importes de la columna 1 sean inferiores a los de la columna 2.

3. El primer paso en el XFBR es definir la lista de cuentas que necesita recorrer.

Public Function CubeViewComponent(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As DashboardStringFunctionArgs) As String
Try
'Get the Account Descendant List (used in Cube View) which will be used to loop through
Dim AcctList As List(Of MemberInfo) = BRApi.Finance.Metadata.GetMemberUsingFilter(si,"CanadaAccounts","A#Income_Statement.TreeDescendantsInclusive", True)

En este caso, utilizo GetMembersUsingFilter para devolver la misma lista de cuentas que en la vista de cubo. Esto devuelve un objeto MemberInfo para cada cuenta, que se utilizará más adelante en XFBR para obtener los nombres de los miembros de la cuenta.

4. Cree la variable que contendrá la lista separada por comas de nombres de cuentas que se devolverán a la función de formato de celda de la vista de cubo.

' Variable that will hold all Accounts that have a Greater Value - This is what is passed back to the Cube View Formatting Statement
'Set the value to a blank space so if no accounts have a greater value, a blank space will be returned and the Formatting statement will not error out.
Dim strVarianceOff As String = ""

5. Ahora recorra todos los objetos MemberInfo usando las funciones GetDataCellUsingMemberScript para obtener los importes de las celdas de las dos columnas de cada cuenta. Evalúe cada intersección del mes 1 con el mes 2 y, si el importe del mes 2 es menor que el del mes 1, añada el nombre de la cuenta a la variable de cadena.

'Loop through each account
For Each acct As MemberInfo In AcctList
 Dim strAcctName As String = acct.Member.Name.ToString
 'Get Month 1 Value
 Dim objMonth1 As DataCellInfoUsingMemberScript = BRApi.Finance.Data.GetDataCellUsingMemberScript(si, "CAN_ACT", E#ONT_County1:C#None:S#Actual:T#2021M1:V#Periodic:A#" & strAcctName & ":F#None:0#For"
 Dim decMonth1 As Decimal = objMonth1.DataCellEx.DataCell.CellAmount
 
 'Get Month 2 Value
 Dim objMonth2 As DataCellInfoUsingMemberScript = BRApi.Finance.Data.GetDataCellUsingMemberScript(si, "CAN_ACT", E#ONT_County1:C#None:S#Actual:T#2021M2:V#Periodic:A#" & strAcctName & ":F#None:0#For"
 Dim decMonth2 As Decimal = objMonth2.DataCellEx.DataCell.CellAmount
 
 'Compare the Values of Each Account - Month 1 vs Month 2 amounts.
 'If Month 1 Value is greater than Month 2 value, add it to the return string
 
 If decMonth1 > decMonth2 Then
    strVarianceOff = strVarianceOff & strAccntName & ","
 End If
Next

6. El paso final es eliminar la coma final de la variable que contiene las cuentas agregadas en el paso anterior.

'remove the ending comma from the return string
strVarianceOff = strVarianceOff.Substring(0,strVarianceOff.Length - 1)

7. El código en su totalidad.



Public Function CubeViewComponent(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As DashboardStringFunctionArgs) As String
Try
'Get the Account Descendant List (used in Cube View) which will be used to loop through
Dim AcctList As List(Of MemberInfo) = BRApi.Finance.Metadata.GetMemberUsingFilter(si,"CanadaAccounts","A#Income_Statement.TreeDescendantsInclusive", True)

'Set the value to a blank space so if no accounts have a greater value, a blank space will be returned and the Formatting statement will not error out.
Dim strVarianceOff As String = ""

'Loop through each account
For Each acct As MemberInfo In AcctList
 Dim strAcctName As String = acct.Member.Name.ToString
 'Get Month 1 Value
 Dim objMonth1 As DataCellInfoUsingMemberScript = BRApi.Finance.Data.GetDataCellUsingMemberScript(si, "CAN_ACT", E#ONT_County1:C#None:S#Actual:T#2021M1:V#Periodic:A#" & strAcctName & ":F#None:0#For"
 Dim decMonth1 As Decimal = objMonth1.DataCellEx.DataCell.CellAmount
 
 'Get Month 2 Value
 Dim objMonth2 As DataCellInfoUsingMemberScript = BRApi.Finance.Data.GetDataCellUsingMemberScript(si, "CAN_ACT", E#ONT_County1:C#None:S#Actual:T#2021M2:V#Periodic:A#" & strAcctName & ":F#None:0#For"
 Dim decMonth2 As Decimal = objMonth2.DataCellEx.DataCell.CellAmount
 
 'Compare the Values of Each Account - Month 1 vs Month 2 amounts.
 'If Month 1 Value is greater than Month 2 value, add it to the return string
 
 If decMonth1 > decMonth2 Then
    strVarianceOff = strVarianceOff & strAccntName & ","
 End If
Next

'remove the ending comma from the return string
strVarianceOff = strVarianceOff.Substring(0,strVarianceOff.Length - 1)

Return strVarianceOff
Catch ex As Exception
    Throw ErrorHandler.LogWrite(si, New XFException(si,ex))
    
End Try
End Function


8. Esto devolverá el valor de strVarianceOff, que será similar a esto: “A_60000,A_6000A,A_6002A”

9. Ahora debe crear la función de formato de celda en la vista de cubo usando "RowE1Member Name In". Esto evaluará todos los nombres de miembros (cuentas en este caso) devueltos por XFBR. En este caso, cambiará el color de fondo a Aqua para todas las celdas de datos cuyo importe sea inferior al importe de la columna 1.

Formato de columnas de OneStream Designer

¡Ahora puede aplicar formato de varianza de celda en la vista de cubo, que compara las cantidades de celdas de una columna de datos con otra!

Explorador de datos de OneStream

Socio Destacado

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.

OneStream

Nuestra compañía

El personal senior de MindStream Analytics estuvo presente en el nacimiento de Business Intelligence. Hemos sido parte de la construcción de Business Intelligence a nivel nacional desde su humilde estado de producto de nicho hasta el ubicuo herramienta analítica que es hoy. Los consultores de MindStream están bien versados ​​en informes y gestión de información y están listos para ayudarlo a aprovechar el poder de múltiples proveedores de nivel 1. Desde Oracle Hyperion a IBM Cognos, podemos ayudarlo a seleccionar e integrar las herramientas adecuadas para comprender mejor su información. MindStream Analytics tiene experiencia en una amplia variedad de industrias: servicios comerciales, Productos de Consumo, Energía, Servicios Financieros, Salud, Manufactura, Transporte y Telecomunicaciones. Tenemos la profundidad y la amplitud de la experiencia para ayudarlo a brindar información procesable a los usuarios

Ya sea que necesite una implementación de Oracle BI Enterprise Edition (OBIEE) para toda la empresa, una implementación de Oracle BI Apps o una implementación de IBM Cognos ReportNet, MindStream Analytics está aquí para ayudarlo a tener éxito.

Estudios de caso

Accumen

Gracias a la intervención de MindStream Analytics, el departamento de Finanzas de Accumen ahora puede modelar su negocio con una estructura nueva y más organizada que no está disponible convencionalmente en NetSuite.

Acme Brick

Acme Brick recurrió a MindStream Analytics en busca de ayuda para implementar OneStream para reemplazar su obsoleta solución TM1.

Alterra

Alterra buscó la experiencia de MindStream para abordar los desafíos que enfrentaron en su proceso de planificación de capital.

ATCO Group

El conglomerado energético ATCO opera en todo el mundo en servicios públicos, generación de energía y servicios relacionados.

Avalon

Al trabajar con MindStream Analytics, Avalon Healthcare Solutions adopta NetSuite Planning and Budgeting para acelerar los procesos de presupuestación y previsión.

Bayer Health Care

Bayer Healthcare implementó Hyperion Planning y Workforce Planning en 10 semanas para optimizar drásticamente su presupuesto de declaración de ingresos y su proceso de planificación de la fuerza laboral.

BluEarth

La asociación de MindStream Analytics con BluEarth Renewables personifica el poder de la tecnología y la colaboración.

Celgene

Una actualización de planificación de Oracle Hyperion proporciona optimización y estabilización de la aplicación Hyperion de organizaciones multinacionales.

Cleaver Brooks

Se eligió OneStream XF como la plataforma que transformaría los procesos financieros de Cleaver-Brooks.

CoorsTek

La colaboración entre CoorsTek y MindStream dio como resultado mejoras significativas en los procesos de informes y consolidación financiera de CoorsTek.

Elite Body Sculpture

La colaboración de MindStream Analytics con Elite Body Sculpture resume el potencial transformador de las soluciones tecnológicas específicas para agilizar los procesos administrativos.

Enlyte

Enlyte, una fusión de Mitchell, Genex y Coventry, enfrentó desafíos con soluciones financieras dispares y la necesidad de informes combinados.

Flanders

MindStream Analytics colaboró ​​con Flanders para implementar la solución OneStream Consolidation and Reporting.

Productos Foley

Foley Products se enfrentaba a un desafío importante con su sistema de informes de gestión real basado en Excel.

Harte Hanks

La colaboración entre MindStream Analytics y Harte Hanks culminó en una implementación de NetSuite altamente personalizada y fácil de usar.

Interface

La interfaz utilizó un proceso de FP&A complejo, manual y basado en Excel para la revisión mensual, y los datos resumidos se cargaron en OneStream.

Kymera Internacional

Gracias a la asistencia de Mindstream Analytics, Kymera pudo cargar todos sus datos en OneStream y validarlos exitosamente.

MacLean Fogg

MacLean-Fogg se asoció con MindStream, un implementador líder que se especializa en modernizar y optimizar sistemas empresariales.

MEPPI

Se buscaron los conocimientos y la experiencia de MindStream para llevar a cabo una iniciativa de selección de proveedores centrada en el proceso de planificación F2023 de MEPPI.

OUAI

La colaboración de MindStream Analytics y OUAI muestra el poder transformador de la intervención tecnológica estratégica.

Plaskolite

Al migrar a OneStream, Plaskolite logró una reducción sustancial en el tiempo de consolidación y el ciclo general de cierre financiero, eliminó las horas dedicadas a compilar y verificar datos en Excel, agilizó su modelo de planificación, presupuestación y previsión y entregó informes flexibles y oportunos que permiten un análisis más estratégico de sus datos financieros.

Redwire

Al comprender los matices de los desafíos de Redwire, MindStream Analytics ideó un enfoque holístico para superarlos. La implementación de NetSuite fue sólo el comienzo.

Simon

La aplicación de producción corporativa Hyperion Financial Management (HFM) existente de Simon se estaba consolidando a un ritmo de siete horas, un problema de rendimiento que causaba un gran dolor de cabeza a la contabilidad corporativa.

Source Code

La transición exitosa a OneStream revolucionó los informes financieros de Source Code.

Subway

Subway colaboró ​​con MindStream Analytics para la implementación de NetSuite Analytics Warehouse.

UPenn

Los miembros del equipo de MindStream Consulting y AppCare están orgullosos de trabajar codo con codo con la Universidad de UPenn para lograr esta implementación y continuar con nuestros servicios de AppCare después de su puesta en marcha.

USG

USG era un cliente de Oracle Hyperion y se dio cuenta de que necesitaba soporte más especializado para sus diversas aplicaciones de Oracle Hyperion.

Vantiv

¿Dividir una aplicación de planificación de Hyperion y ampliar la huella de Hyperion para pronosticar el negocio? Categorías de clientes.

Versant Health

Versant Health contrató a MindStream para ayudar a resolver los desafíos que estaban experimentando con sus procesos de consolidación, cierre e informes financieros.

Virginia Space Authority

El equipo de MindStream implementó Standard + Workforce NetSuite Planning & Budgeting.

WeWork

MindStream Analytics determinó que la mejor solución era implementar Oracle Essbase Cloud como parte de la plataforma como servicio Oracle Analytics Cloud (OAC).

WindStream

Uso innovador de essbase para optimizar y conectar la gestión financiera de Hyperion para mejorar el análisis financiero.

XY Planning

MindStream Analytics, experto en abordar estos desafíos, presentó una solución integral de Netsuite para XY Planning.

Enlaces Relacionados