Use Case - Using an XBFR Business Rule to change value of a given parameter

Sergey
Contributor III

Dear Community,

 

I have a use case where the user would like to change a value by clicking a button. when I click on the "+" icon, it will add 1 into my parameter shown in the label, and when I click on "-", this would remove 1.

Very simple, it can be done just with an input but I would like to do it with icons just for fun 🙂

 

Basically, this looks like this :

Sergey_0-1649858321290.png

I was thinking of using an XBRL but not sure on how it would fit ?

 

Regards,

 

1 REPLY 1

Sergey
Contributor III

That was actually an easy one.

I am using a "Dashboard Extender Rule" with a parameter called P_PASSENGERS and its a "litteral value" type parameter :

 

Imports System
Imports System.Data
Imports System.Data.Common
Imports System.IO
Imports System.Collections.Generic
Imports System.Globalization
Imports System.Linq
Imports System.Net.Mail
Imports System.Windows.Forms
Imports Microsoft.VisualBasic
Imports OneStream.Shared.Common
Imports OneStream.Shared.Wcf
Imports OneStream.Shared.Engine
Imports OneStream.Shared.Database
Imports OneStream.Stage.Engine
Imports OneStream.Stage.Database
Imports OneStream.Finance.Engine
Imports OneStream.Finance.Database
Imports System.Xml

Namespace OneStream.BusinessRule.DashboardExtender.ESG_SolutionHelper
Public Class MainClass
Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As DashboardExtenderArgs) As Object
Try
Select Case args.FunctionType

Case Is = DashboardExtenderFunctionType.ComponentSelectionChanged


' ****************** Add one passenger ****************
If (args.FunctionName.XFEqualsIgnoreCase("AddPassenger")) Then

Dim selectionChangedTaskResult As New XFSelectionChangedTaskResult()

Dim parameterName As String = "P_PASSENGERS"
Dim parameterValue As String = ""

parameterValue = BRApi.Dashboards.Parameters.GetLiteralParameterValue(si, False, parameterName)

Dim intParameter As Integer

intParameter = parameterValue.XFConvertToInt(0)

intParameter = intParameter + 1

BRApi.Dashboards.Parameters.SetLiteralParameterValue(si, False, ParameterName, intParameter)

selectionChangedTaskResult.ShowMessageBox = True
selectionChangedTaskResult.Message = String.Format("Passenger Added")
Return selectionChangedTaskResult

End If

' ****************** Remove one Passenger ****************
If (args.FunctionName.XFEqualsIgnoreCase("RemovePassenger")) Then

Dim selectionChangedTaskResult As New XFSelectionChangedTaskResult()

Dim parameterName As String = "P_PASSENGERS"
Dim parameterValue As String = ""

parameterValue = BRApi.Dashboards.Parameters.GetLiteralParameterValue(si, False, parameterName)

Dim intParameter As Integer

intParameter = parameterValue.XFConvertToInt(0)

intParameter = intParameter - 1

If intParameter <=1 Then intParameter = 1

BRApi.Dashboards.Parameters.SetLiteralParameterValue(si, False, ParameterName, intParameter)

selectionChangedTaskResult.ShowMessageBox = True

If intParameter = 1 Then
selectionChangedTaskResult.Message = String.Format("Passenger Removed (minimum:1)")
Else
selectionChangedTaskResult.Message = String.Format("Passenger Removed")
End If
Return selectionChangedTaskResult

End If


End Select

Return Nothing

Catch ex As Exception
Throw ErrorHandler.LogWrite(si, New XFException(si, ex))

End Try
End Function