Knowledge Base Article

Dashboard: XFBR String

Business rules written and used as Parameters that return a specific value based on the defined inputs. This Business Rule can be applied to any Dashboard or Cube View property where a Parameter is used.

Imports System
Imports System.Data
Imports System.Data.Common
Imports System.IO
Imports System.Collections.Generic
Imports System.Globalization
Imports System.Linq
Imports Microsoft.VisualBasic
Imports System.Windows.Forms
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

Namespace OneStream.BusinessRule.DashboardStringFunction.XFBRStringExamples

	Public Class MainClass

		Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As DashboardStringFunctionArgs) As Object
			'------------------------------------------------------------------------------------------------------------
			'Reference Code:   GetCalcStatus 
			'
			'Usage:     This shows different examples of BRString usage in Cube Views and Dashboards
			'
			'GetCalcStatus
			' Parameter Example:  
			'  BRString(XFBRStringExamples, GetCalcStatus, ParamCube = GolfStream,
			'			ParamEntity = [Houston Heights], ParamParent = Houston, 
			'			ParamCons = USD, ParamScenario = Actual, ParamPeriod = 2011M1)
			'
			'GetUserIsAdmin
			'  Parameter Example:   BRString(XFBRStringExamples, GetUserIsAdmin)
			'
			'EntityDesc
			' Parameter Example:  BRString(XFBRStringExamples, EntityDesc, ParamEntity=[|!MyEntity!|])
			'
			'Created By:   OneStream
			'Date Created:   12-18-2017
			'------------------------------------------------------------------------------------------------------------    
			Try
				Select Case args.FunctionName
					Case Is = "GetCalcStatus"
						'Get the Passed in parameters
						Dim paramCubeValue As String = args.NameValuePairs("ParamCube")
						Dim paramEntityValue As String = args.NameValuePairs("ParamEntity")
						Dim paramParentValue As String = args.NameValuePairs("ParamParent")
						Dim paramConsValue As String = args.NameValuePairs("ParamCons")
						Dim paramScenarioValue As String = args.NameValuePairs("ParamScenario")
						Dim paramPeriodValue As String = args.NameValuePairs("ParamPeriod")
						Return BRApi.Finance.Data.GetCalcStatus(si, _
							paramCubeValue, paramEntityValue, paramParentValue, _
							paramConsValue, paramScenarioValue, paramPeriodValue)
					Case Is = "GetUserIsAdmin"
						'Check to see if the user is an administrator 
						' (Can be used to hide objects that are administrator only)
						Return BRApi.Security.Authorization.IsUserInAdminGroup(si)
					Case Is = "EntityDesc"
						'Get the Passed in parameter
						Dim myEntity As String = args.NameValuePairs("ParamEntity")
						Dim myEntityDesc As String = BRApi.Finance.Metadata.GetMember( _
														si, 0, myEntity).Member.Description
						Return myEntityDesc
				End Select

				Return Nothing
			Catch ex As Exception
				Throw ErrorHandler.LogWrite(si, New XFException(si, ex))
			End Try
		End Function
	End Class
End Namespace
Updated 2 years ago
Version 3.0