Discuss formulas and business rules for your application.
Recently active
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.
Hi Has anyone created an event handler around the journal name creation? We have a requirement around enforcing the journal name to meet a specific criteria + be within a certain number of characters in length Thanks
Hey - I seem to recall something/somewhere in the application I could reference to find sample syntax such as common financial logic and other starters. My memory is fuzzy, but I thought it was almost like a dialog box similar to the member filter builder, but inside the application. I can't seem to locate it in the application nor find reference material. Am I losing my mind?
Hi All, Is there any option/setting for DynamicCalc account data rolled up to its parent (account type is expense)
Hello, I'm attempting to create my first table view using the syntax below. The SQL is a very basic record grab from DataEntryAuditSource (initial POC). Compiles fine and seems to be okay relative to the user guide, but I keep getting an error message when I attempt to run. Does anyone have any thoughts on what I could be doing wrong? Thanks, Sean ----- Imports SystemImports System.Collections.GenericImports System.DataImports System.Data.CommonImports System.GlobalizationImports System.IOImports System.LinqImports Microsoft.VisualBasicImports OneStream.Finance.DatabaseImports OneStream.Finance.EngineImports OneStream.Shared.CommonImports OneStream.Shared.DatabaseImports OneStream.Shared.EngineImports OneStream.Shared.WcfImports OneStream.Stage.DatabaseImports OneStream.Stage.Engine Namespace OneStream.BusinessRule.Spreadsheet.UTM_TaskList Public Class MainClass Public Function Main(ByVal si As SessionInfo, ByVal globals
Does anyone know if it is possible to specify all artefacts in XFProject? eg something like <xfProject topFolderPath="DEV" defaultZipFileName="DEV.Zip"> <projectItems> <projectItem projectItemType="BusinessRule" folderPath="" name="*" includeDescendants="true" /> </projectItems> </xfProject> Thanks
tldr: What's a performant, reliable way to determine a member's parent within a given hierarchy?I have been developing a custom extender rule to automate OneStream metadata updates based on our master metadata source. One of the last remaining tasks to solve is how to correctly execute member moves. As OneStream can have a given member exist multiple times in the same dimension, the only way to execute a move in OneStream is by specifying "move from parent A to parent B." Parent B is quite easy to determine as our metadata source provides this information per-hierarchy and does not allow duplicates but it does not tell us parent A, or even if there was a move at all. This means I have to validate that the specified member 1) is under the same parent that our metadata source says it should be and 2) isn't anywhere else in the hierarchy. However, in OneStream, I know of no way to query the parent(s) of a member but only those within a specific hierarchy. I've never needed to do this in a
This is the layout of my CVI'm using an XFBR in rows (and columns); the rules for each scenario are different; how do I get the context from the columns?In other words, when the scenario is Budget I want to apply specific rules for that scenario, same thing for Actual. This would be the script: Namespace Workspace.__WsNamespacePrefix.__WsAssemblyName.BusinessRule.DashboardStringFunction.REP_ParamHelper Public Class MainClass Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As DashboardStringFunctionArgs) As Object Try If args.FunctionName.XFEqualsIgnoreCase("GetAccount") Then //Do something End If End Function End Class End Namespace
Hi,We are currently using a Dashboard that allows admin to remove users from Security groups. I would like to enhance this functionality so that approvers, rather than admins, have the ability to remove users from security groups.Currently, the system security roles under the " System tab" are set to "ADMIN" by default for the "Manage System Security Groups" setting.Unfortunately, we cannot make changes to these System Security roles due to the large number of approvers across various groups.Could you offer suggestions or guidance on how we can implement this enhancement effectively?Thanks in advance.
I am looking for different options to do Constant Currency.
Does anyone have a business rule that will send you an email notification when the SIC goes down?Or does anyone know if this is possible?
Is it possible to use Member Expansion functions like U1#[Top].Base.Where , U1#[Top].Base.Options within api.Data.GetDataBufferUsingFormula?I want to get data to the buffer from a Scenario / Scenario Type which is setup with a Summary UD1 dimension in the Cube Configuration.The data is loaded to this Scenario at Summary UD1 members.In the Spreadsheet I am able to pull the data using below member filter function. U1#[XX].Base.Options(cube = AA , ScenarioType = Operational)However when I apply the same function in the api.Data.GetDataBufferUsingFormula , I am getting errors stating need a comma after Options.If this function cannot be used within Finance BR is there another way to get the data from base members of Summary UD1 dimension?Dimension Summary UD1 Detail UD1 MembersSummary UD1 Top CC001 Detail UD1 Top &
Need some ideas on how to out bound files from OS shared folders to a network driver using UNC through SIC (we are upgrading to 8.2 from 7.3). We have SFTP through SIC works already, however, this specific process cannot be replaced by SFTP at this time. I have seen discussions and recommendation about inbounding through SIC only.
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.