Discuss formulas and business rules for your application.
Recently active
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! 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
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
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?
I am looking for different options to do Constant Currency.
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 &
Hello OS Community.I'm working on a confirmation rule that is supposed to check for the presence of annotations when thresholds are defined. The intended behavior is:If thresholds are present, but no annotation/comment is provided, the rule should fail validation.However, the logic isn't working as expected. Even when no comment is given, the rule still passes and acts as if a comment is provided.Here’s what I need help with Ensuring that the rule correctly identifies missing comments and fails as intended. Identifying what might be wrong in my current logic it seems to incorrectly detect comments even when none exist.Any insights or examples of similar logic would be much appreciated!
Hi Everyone. I would like to know how I can remove zero values in my GetDataBufferUsingFormula. Dim DatabufferCalc As DataBuffer = api.Data.GetDataBufferUsingFormula("FilterMembers(E#" & strParentEntity & ".Base,E#XFMemberProperty(DimType=Entity, Member=|!PerformPnL_Entity!|, Property=Text1).Base:S#[" & strScenario & "]:T#" & strPeriod & ":O#Top:I#None:U1#ALL_DEPARTMENTS:U2#ALL_PRODUCTS:U3#CORP_RPT:U4#ALL_PROJECTS:U5#None:U6#None:U7#None:U8#None,A#411000)") And from the result, I would like to obtain the entity, and from that entity, know its Text1, Text2, and Text3. However, for now, I see that I can only obtain the account and the rest of the properties such as the UD Dim DatabufferCalc As DataBuffer = api.Data.GetDataBufferUsingFormula("FilterMembers(E#" & strParentEntity & ".Base,E#XFMemberProperty(DimType=Entity, Member=|!PerformPnL_Entity!|, Property=Text1).Base:S#[" & strScenario & "]:T#" & strPeriod & ":O#Top:I#None:U1#ALL_DEPART
Pls share how to run1. a traditional BR via a member formula2. an assembly BR via a member formulaThank you - OS SME.
Hello, I am trying to update a business rule that is currently set to WFYear to the Global Time. We use the SAP Selector Solution, but I am new to it. Currently the WFYear of the user who schedules a trial balance import impacts what data is being loaded. For example, if the user's WF POV is 2024, then data is pulling from the source for 2024. I appreciate any suggestions. Original Rule This is one idea I had, I am not sure T#|Global| will work since it is not a local variable. I also don't know if I need to change the "Dim wfYear As String = timeStr.Substring(0,4)" script. Thanks, Ronnie
Hi all,it is pretty straight forward in an dashboard extender rule to return a message box to be displayed to the user in the dashboard (like the picture below).The question I have is: is it possible to prompt the user with what I would call an interactive prompt, a prompt having a Yes and No buttons for example, and for the dashboard extender rule code to store the result of the selection for use in the rule code itself? This would be useful when displaying a warning for example. We could prompt the user with the warning and then ask if they still want to proceed or not. Thank you
Hello, I am trying to get my dynamically created buttons to execute a server task. I can create all the buttons I need in my dynamic dashboard, but as soon as I try to get them to execute a dashboard business rule, I get an error message : I have checked my services, and Everything gets validated. My WsDynamiccomponentCollection is as follow : Dim currentcomps As WsDynamiccomponentCollection = api.GetDynamicComponentsForDynamicDashboard(si, workspace, dynamicDashboardEx, string.empty, Nothing, tristatebool.TrueValue, wsdynamicitemstatetype.EntireObject) I am also using the functions SaveDynamicDashboardState and SaveDynamicComponentState : api.SaveDynamicDashboardState(si,dyncomp2,dynamicDashboardEx,wsdynamicitemstatetype.EntireObject) api.SaveDynamicComponentState(si,dynamicDashboardEx.DynamicDashboard,dyncompex2,wsdynamicitemstatetype.EntireObject) (dyncomp2 and dyncomp2ex being the butt
We're moving most of the Business Rules to Workspaces Assemblies under PV 8.4.- We have several Extensibility Rules that are run by multiple Data Management (DM) Jobs like you.- Hence, we included separate DM Step Services (DMSS) in the same Service Factory (SF).- The result of this SF setup was chaos.- We saw that launching one DM Job by a given DMSS in the SF will also launch other DM Jobs by their DMSS in the SF. We couldn't find enough practical advice on the SF/DMSS setups in the Design Guide to overcome this chaos.Pls share how to set up Data Management Step Services in a Service Factory to launch one Extensibility Rule/DM Job at a time. TY.
Hello OS Community - We are running into below error while trying to load 1 + million records from SAP via connector business rule. Tried with all the options on Cache Page Size limit, at present it is set as below. We did not have any luck so far. Any recommendations or guidance is much appreciated. Summary: The remote server returned an error: (502) Bad Gateway Thanks.
We are using an extender business rule to run FdxExecuteDataUnit and write the data (with dimensionality) to a file. The file generated seems to be a standard format with a column for each dimension. Does anyone have any ideas on how to include the Member IDs in the file export? Thank you, Denise
Hello Community,I'm writing a rule to copy data from one scenario to another using api.data.calculate.However, I would like to exclude some accounts from being copied. Something like the following:api.Data.Calculate("V#YTD:S#ACTUAL=RemoveZeros(V#YTD:S#ACTUAL_TEST)","A#Root.Base.remove(A#CAPEX_ACCOUNTS.Base)") I understand that the Remove function will not accept a member expansion. Members to be removed must be listed in the function as specified in this post:"What is the best approach to “subtract” members in a hierarchy, the following member filter is not returning the expected results. E#Tot_Mgmt.Remove(Houston) | OneStream Community"But is there any alternative to do it without listing accounts to remove one by one ?Any help is appreciated!Thank you
Dear all, We have 2 custom calculate functions (Finance BR) that are executed one after the other. The 1st one uses V#Period as POV and the 2nd uses V#YTD as View POV. These POV are set on the data management steps that use these functions.We'd like to merge both functions into one to simplify maintenance but the fact that they use different View POV creates an issue; if the data management steps uses V#Periodic or V#YTD, one function will work properly but not the other. Do you know how it can be set as a fixed View POV into the functions itself? Maybe there's a way updating the value of the "args" variable that is used as an input into the formula.Thank you for the help and guidance.Best regards,Carlos
We have FX rates published in a table to/from virtually every currency in the world. However, this is something like 70k rates a month and the vast majority are for currencies we don't use in our OneStream application. The majority of the rest are for combinations that we don't use. Of these tens of thousands of rates, only about 25-30 are actually relevant. I'm trying to automate this filtering using the currency filter from the application properties, which returns a simple comma-separated list, like so: CAD,EUR,JPY,USD In this example, I want all rates to/from USD. So, I ditch the ",USD" and want to filter on the three remaining currencies: CAD,EUR,JPY Writing a query in SSMS, this is trivial. Writing the query with straight up string manipulation in the BR is also straightforward. However, I'm trying to be (perhaps needlessly strict/cautious) by passing this in as a parameter. This makes me want to use my laptop as a non-brand-specific flying disc and restart life as a hermit in a
I encountered this Boolean today for the first time after writing (and reviewing) code for five years. There is no mention of it that I can find in the documentation. Based on the name itself, I can guess that this is a Boolean to make sure you're not on C#Elimination or any other of the "non-Currency" members of the Cons dimension.Have I guessed correctly?
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.