Discuss formulas and business rules for your application.
Recently active
In the example code for the Dynamic Dimension Service there appears to be a subtle bug which will affect refresh of the dimensions.ReadDynamicDimensionInfo(...) returns DateTime.Now:' This api method will build the required object, straight from an SQL query. Return api.ReadDynamicDimensionInfo(si, args, DateTime.Now, numSecondsBeforeCheckTS, _ dbConn, sql.ToString, Nothing, Nothing, _ "Name", "Description", "UniqueID", "Name", "Parent", "ParentID", "Parent", "AggWeight", True)BUT ReadDynamicDimensionContentTimestamp sets the Timestamp as DateTime.UTCNow:'Refresh once per minute (note: frequent refreshes such As one minute could degrade performance). Dim utcNow As DateTime = DateTime.UtcNow Return New DateTime(utcNow.Year, utcNow.Month, utcNow.Day, utcNow.Hour, utcNow.Minute, 0, 0, DateTimeKind.Utc)This will matter if your refresh period is < 13(?) hours AND if your TimeZone is ahead of UTC......It's an easy fix though!Steve
Hi allI'm trying to understand the purpose of the string 'itemName' variable that is available inside the assembly service factories.Does anyone know the intended purpose of the 'itemName'?And does anyone have some best practice guidelines or examples of this variable in use? Thank you very much everyone!Thor
Hello all, I have a field in my input dataset that I am tracing the mapping for and I can't figure out why One Stream is selecting the mapping rule it is using. The field is a cost center (UD1) value of '1VA' and it is not specifically called out in one-to-one or is it included as a composite range. I really think it should have been falling out as an exception. OneStream however tells me it is applying a Range Rule 'ABC' where the rule expression = '18~21'. I am flummoxed as to the reason why. I've double checked it a few times. Any ideas why this range rule was selected, or maybe an idea of other areas to check out to see why the cost center UD1 mapping is behaving the way it is? Thanks in advance. Happy to add add'l details if needed. Regards, DK
Hello. I have a set of Lookup Transformational rules. I have tried to load a mass upload for multiple lines of transformational rules through a trx file. I had a message saying the load has been completed with errors. However when I try to search for one rule I can't find it in the set of rules. When I try creating one of them manually it won't let me create it as it says it exists already, even though it doesn't show in the rule set. How can I undo what I did? How can I sort it out. A lot of people are depending of these rule set as it helps with Data extraction. Please support.
Hi Community, We have a requirement to bypass lines from the source data for each account if the total equals to zero, regardless of the UD1 value. For example if these two lines are in the source data: Account 1, UD1_1, -100 Account 1, UD1_2, 100 we want to bypass account 1. Is there a way to achieve this result? in our case this is happening because we are adding UD1 in the source system and it's triggering a lot of unused accounts to now appear on our staging table because of the different UD1 members.
i have blow code to copy the periodic values from YTD scenario but it didn't work Dim sourceBuffer1a As DataBuffer = api.Data.GetDataBufferUsingFormula("FilterMembers(S#" & sSourceForecast & ",V#PERIODIC,A#Top.Base,O#AdjInput)", DataApiScriptMethodType.Calculate, False, destination) Dim sourceBuffer1b As DataBuffer = api.Data.GetDataBufferUsingFormula("FilterMembers(S#" & sSourceForecast & ",V#PERIODIC,A#Top.Base,O#Forms)", DataApiScriptMethodType.Calculate, False, destination) Dim sourceBuffer1 As DataBuffer = sourceBuffer1a + sourceBuffer1b If (Not sourceBuffer1 Is Nothing) Then
Hi, Can anyone help with a way of creating username folder in Data management Export folder? This is in the File Explorer area. Is there a way to create a folder here through a business rule? Thanks a lot.
I'm using the following code snippet in a Dashboard Extender Rule to loop through the list a of Workflow Profiles. However, the code fails, if the user does not have security access to a particular Workflow Profile, returned in the list. Is there a way I can get the list returned with security access applied, so the list only returns Workflow Profiles that the user has access to? Dim profile As String = "text1 tag to match" Dim wfProfileName As String = "" Dim cubeRootInfo As WorkflowCubeRootInfo = BRApi.Workflow.Metadata.GetCubeRootInfo(si, si.WorkflowClusterPk.ProfileKey, True) cubeRootCluster As New WorkflowUnitClusterPk(si.WorkflowClusterPk) cubeRootCluster.ProfileKey = cubeRootInfo.CubeRootProfile.ProfileKey Dim profileInfos As List(Of WorkflowProfileInfo) = BRApi.Workflow.Metadata.GetRelatives(si, cubeRootCluster, WorkflowProfileRelativeTypes.Descendants, WorkflowProfileTypes.BaseAndParentInputProfiles) For Each profileInfo As WorkflowProfileInfo In
Hi Everyone. I have the following CALCULATE expression, but it’s returning no results. The source values are not zero, so I’m not sure if the way I’m using the DIVIDE function is causing the issue, or if there is another problem Dim DBCInner As DataBuffer = api.Data.GetDataBufferUsingFormula("FilterMembers(A#RETBUYBACK:E#" & strEntTx3 & ":C#Local:O#Top:U2#INNER:UD3#COUNTRY_RPT + A#423100:E#" & strEntTx3 & ":C#Local:O#Top:U2#INNER:UD3#COUNTRY_RPT + A#411000:E#" & strEntTx3 & ":C#Local:O#Top:U2#INNER:UD3#COUNTRY_RPT)") api.Data.FormulaVariables.SetDataBufferVariable("DBCInner",DBCInner,False) Dim regionalRpt As DataBuffer = api.Data.GetDataBufferUsingFormula("FilterMembers(A#RETBUYBACK:E#" & strEntTx3 & ":C#Local:O#Top:U2#INNER:UD3#REGIONAL_RPT + A#423100:E#" & strEntTx3 & ":C#Local:O#Top:U2#INNER:UD3#REGIONAL_RPT + A#411000:E#" & strEntTx3 & ":C#Local:O#Top:U2#INNER:UD3#REGIONAL_RPT)") api.Data.FormulaVariables.SetDataBufferV
Hello All, Our initial setup had everything copying data files to Application/Batch/Harvest folder. There has been multiple years of files stored in this location making it unable to open. I am trying to create something to pull the files and if folders are created to delete the stored files. I am uable to open the path and the clean up business rule fails to run due to the size. I spoke with some developers at Nashville Splash and am reaching out on here as well.
Is there a way to capture mouse or pointer position in OneStream? I want to be able to change a value dependent on where the mouse/pointer is currently located within a grid. Any thoughts?
Need to copy an IC account data (Is IC Account = True) between scenarios, one way or another, and it seems like I can't.Tried databuffer copy - no worky. Tried api.data.calculate - same, nothing copied. In the end I tried "Copy Data" data management step for the entire data unit and IC account hasn't been copied.I set "Is IC Account = False" in the account settings and the data was copied without any problem, so said IC setting seems to be the only reason.Is this normal behavior? Something I missed in the documentation?
Hi Team,Quick question — has anyone else encountered this behavior in rule logic?I’m working with a standard api.Data.GetDataCell(...) call that includes the O#Top member in the POV. Here's the line I'm using:Dim baseValue As Decimal = api.Data.GetDataCell("C#Local:A#1104000000:F#CLO:O#Top:I#Top:U1#Top:U2#Top:U3#Top:U4#Top:U5#Top:U6#Top:U7#Top:U8#Top").CellAmount.BRApi.ErrorLog.LogMessage(si, baseValue)On the Cube View, this correctly returns -501 under O#Top.However, when I log the value in the rule using:- It outputs the value from O#Import, not the aggregated O#Top result I expected.This rule worked flawlessly for 3 years until now on Version 7.4.As a workaround, I manually aggregated the base origin members in the rule, which produced the expected result.However, I’m still unclear why O#Top didn’t aggregate properly in this case, given that it functions as expected in Cube Views. I checked and compared with several other apps, i
Hi! We’ve developed a custom REST API in our OneStream application to automate user management. So far, the following methods are working successfully: CreateUser – Creates a new user DisableUser – Disables an existing user Now, we are trying to add a new method: EnableUser – This method receives a user name and sets the IsEnabled property to True. The logic is quite simple. We retrieve the existing user using: Public Sub EnableUser() ' Get user name Dim username As String = Me._UserProperties("name") If String.IsNullOrEmpty(username) Then Throw New Exception($"Supplied name is empty") ' Get user Dim userToEnable As UserInfo = BRApi.Security.Authorization.GetUser(Me._Si, username) If userToEnable Is Nothing Then Throw New Exception($"User '{username}' was not found in OneStream") ' Set IsEnabled = True userToEnable.User.IsEnabled = T
Dear community, Using Dynamic dashboard, is it possible to add completely new components from scratch ? So far, I was able to define a label with DashboardComponent function, and somehow add it to a component collection using WsDynamicDbrdCompMemberEx and adding it to WsDynamicComponentCollection . But that's it, I dont knw how to add it to my dynamic dashboard. Any hints ? Regards,
Can someone help with creating a BR to customize scenario visibility for some entities using .NET ?I have a list of entities that don't share a common parent and want them to not be visible in the budget scenario.
Good afternoon,Does anybody know which security setting would allow a user to delete files from their Temp Folder?I have tried changing the below System and Application Security Roles with no luck. Each time i get an error saying the User does not have permission to write to that folder.Private Sub ClearUserTempFolder(ByVal si As SessionInfo) Try Dim userName As String = si.UserName.Replace(" ", "") Dim location As FileSystemLocation = FileSystemLocation.ApplicationDatabase Dim folderPath As String = $"Internal/Users/{userName}/Temp" Dim fileTypeFilter As XFFileType = XFFileType.All Dim contentFileExtensionFilters As List(Of String) = Nothing ' Get list of files Dim objList As List(Of XFFileInfoEX) = BRApi.FileSystem.GetFilesInFolder(si, location, folderPath, fileTypeFilter, contentFileExtensionFilters) If objList IsNot Nothing AndAlso objList.Count > 0 Then For Each file In objList Try
Hi. I am using the FdxExecuteDataUnitTimePivot to pull data through a Data Adapter. My Setup now is only pulling the Names of the dimension members. Is there any way to get the descriptions as well? My Code: Public Function ToNexusSalaryBridge(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As DashboardDataSetArgs) Dim sScenario As String = args.NameValuePairs.XFGetValue("myScenario", String.Empty) Dim sYear As String = args.NameValuePairs.XFGetValue("myTime", String.Empty) Dim sWorkspaceID As Guid = BRApi.Dashboards.Workspaces.GetWorkspaceIDFromName(si, False, "Default") Dim sRootEntity As String = "MyRootEntity" Dim cubeName As String = "Test" '# data unit dims Dim consName As String = "Aggregated" 'member name only, no dim token Dim scenarioTypeId As Integer = ScenarioType.Budget.Id Dim viewName As String = "Periodic" 'member name only, no dim token Dim entityDimName As String = "E_ELTBU"
Is someone able to assist me with an alternative method for GetCalculatedFxRate on line 14 of the code below? We just upgraded to 8.5.1 and this is no longer being supported. In 8.2.3 it was still working. This is a parser business rule that is being applied to a data source and calculation happening when data is being imported. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 'Purpose: Get Translation rate for To/From currencies on current record. ' Store translation rate in global variable to use with subsequent records for performance improvements. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dim time As String = api.CurrentDataClusterKey.TimeName 'Get current time. Dim currencyRate As Decimal = globals.GetDecimalValue(fromCurrency & "-" & toCurrency & "-" & time) 'Check Global variable for current translation rate. If Not currencyRate =
Hi allI currently have a UD8 member to do a simple variance to actuals formula, but I was wondering if it is possible pass parameters to the UD8 member formula that this could be more dynamic? My current code looks something like this: Try 'Declare base and comparison scenario variables Dim currentScenario As String = api.Pov.Scenario.Name Dim comparativeScenario As String = "Actual" 'Define pov filters Dim currentFilter As String = "S#" & currentScenario & ":U8#None" Dim comparisonFiler As String = "S#" & comparativeScenario & ":U8#None" Return api.Data.GetDataCell("BWDiff("& currentFilter & "," & comparisonFiler & ")") Catch ex As Exception Throw ErrorHandler.LogWrite(si, New XFException(si, ex)) End Try However, I'm trying to see if there is a solution where I could have the following: Dim comparativeScenario As String = |!Comparative_Scenario_Parameter!| Thanks,Mark
Hi everyone, I suspect that this is fairly simple, but I haven't been able to find a solution as yet.I need to add formulas for Debtor Days, Creditor Days, and Inventory Days, all of which use 12-month averages in the calculation. The also all use the number of days in the month.Does anyone have an example of the syntax needed to include both of these?Thanks
I'm trying to change the WF POV via DashboardExtender BR. I noticed there is Enum XFSelectionChangedPovActionType but I don't see any object which can make a use of this. Any tips?
Hi All,I am currently setting up account reconcillations manager (RCM) and import both YTD GL data and Periodic Flow data in the actual scenario. I want to bring in just the YTD GL data into RCM, but it's bringing in both data sets. How can I exclude the Import Flow Data? I know that I can filter on the workflow profile "Import Flow Data" in the Account Rec inventory and delete them, but I'd rather the flow data just not come into RCM in the first place. Thanks for the help!
Hi Everyone. I am unable to join datasets and suing below code. Purpose: is to combine the outcome of 2 method queries WF Status and CertificationStatus to get a single table. Kindly help with your comments or guidance: Imports System Imports System.Collections.Generic Imports System.Data Imports System.Data.Common Imports System.Globalization Imports System.IO Imports System.Linq Imports System.Windows.Forms Imports Microsoft.VisualBasic Imports OneStream.Finance.Database Imports OneStream.Finance.Engine Imports OneStream.Shared.Common Imports OneStream.Shared.Database Imports OneStream.Shared.Engine Imports OneStream.Shared.Wcf Imports OneStream.Stage.Database Imports OneStream.Stage.Engine Namespace OneStream.BusinessRule.DashboardDataSet.GetWFStatusandCertification Public Class MainClass Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As DashboardDataSetArgs) As Object Try Select Case args.FunctionType Ca
Hi Everyone. I wanted to see if there is a way to obtain the entities that are under another one but with a filter, like the following: E#|!PerformPnL_Entity!|.TreeDescendantsInclusive.Where(Text1 StartsWith M_ and (HasChildren = True)) I want to do this in a BR, but I am not sure exactly how to do it or if it is possible, since GetBaseMembers brings all of them and I would like to filter it first so that there are not too many entities to verify. I would appreciate it if you could help me with this question.
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.