Discuss formulas and business rules for your application.
Recently active
Hi,I have a Tree View in my dashboard that contains some items, I want that each time the user selects an item in the tree, this bound parameter in the Tree View updates:So I've set that each time an item is selected in the tree, the dashboard containing the Tree View gets refreshed to update the parameter.The Tree Type is set as "Search" and the problem is that when the dashboard gets refreshed the text box of the search bar gets cleaned and all the items the user might have opened to get to a specific one also get closed.A workaround that I have found is to call a component service function to store the bound parameter into a variable in order to get the value without refreshing (I'm using assemblies). I've already tried using XFSelectionChangedTaskResult, but it doesn't help.I was wondering if there was any other way to do this that I'm missing.Thanks :)
Hi,I have a tree view component with this bound parameter:When an item in the Tree is selected, I want the parameter "userSelection" to update accordingly, for this reason I've set it to refresh once an item is selected. The problem is that all the parent items the user opened to get to the selected item get closed once the dashboard gets refreshed, but I can't find a way to update "userSelection" without refreshing.The only workaround I found is to save the parameter value into a variable, but it can be only accessed by components since I'm in a component service (I'm using assemblies).So, do you know any way to save the value into "userSelection" parameter without refreshing? (I've already tried using SelectionChangedTaskInfo but it doesn't work)Thank you.
I'm making my first attempt at using the DataBuffer to perform a data copy from a source scenario to a destination scenario. This is being done through a Data Management (DM) step and a Custom Calculate business rule. To keep things simple for this initial version, the input values are hard-coded. Dim dbSource As DataBuffer = api.Data.GetDataBufferUsingFormula("S#Budget:T#2026M7:A#CF101:O#AdjInput:E#ES", DataApiScriptMethodType.Calculate, False) Dim destinationInfo As ExpressionDestinationInfo = api.Data.GetExpressionDestinationInfo("S#Forecast_Q2:T#2026M7:A#CF101:E#ES:O#AdjInput") api.Data.SetDataBuffer(dbSource, destinationInfo,,,,,,,,,,,,,False) Appreciate any inputs to fix this. Thanks
Hello, I am currently working on the solution which consist of a dashboard page that can be embedded in other dashboards. For this solution, I would like to reference the name of the parent dashboard where the embedded dashboard is currently embedded. Are there any standard functionalitity / functions that would catch the main or parent dashboard of an embedded dashboard ? Many thanks for your insights. Regards,
Hello, I am currently working on some Eventhandlers to prevent a group of users to execute calculate/translate/consolidate in dedicated scenarios. This was easy to do and works fine. But we have created a button in a dashboard which combines a save action "save data for all components" with a Server Task "Force Calculated" and I don´t know how to catch this button in an Eventhandler. Any hints how to do this?RegardsMartin
Hello Community! I am trying to write a BRApi SetDataCells code but cant get the syntax right. Can someone please share an example? I am not sure how to get the "dataCellExs" in the below code:BRApi.Finance.Data.SetDataCells(si, dataCellExs)Thanks in advance.
I’m working on a custom clear process that clears cube data using GetDataBufferUsingFormula() The goal is to dynamically clear data for all base members under the current POV (Entity, UD1-UD4) by expanding any parent members with the .Base suffix. In other words, I want to make sure every dimension in the POV (Entity and UDs alike) is ultimately resolved down to base members before the clear runs. Here’s a simplified idea of what I’m doing: Dim filterString As String = String.Join(":", intersectionParts)Dim fullFilter As String = $"FilterMembers({filterString})"Dim sourceBuffer As DataBuffer = api.Data.GetDataBufferUsingFormula(fullFilter, DataApiScriptMethodType.Calculate, False, destinationInfo) The process builds a FilterMembers() expression dynamically, retrieves the buffer, and sets all cell amounts to zero to perform a clear. However, I’m facing two issues: Some child members aren’t being cleared, even when I use .Base on their parent. I’m not fully sure about the correct
Hello everyone, We have set up a monthly forecast that is compared to the budget or actual figures in different cube views. We currently use a parameter to select the forecast month in each cube view, but I would like to remove it and have the latest forecast for the year or year N-1 displayed automatically. I have created an XFBR that retrieves the holding company's turnover for each of the 11 forecasts (January, February, etc., November) and displays the forecast closest to December with a turnover. The problem is that not all users have access to this company, so the BR does not work for them. I could change the BR to add companies to it so that it works for all users, but I find that cumbersome. Is it possible to save a value (X or 1) in a variable when initializing the forecast so that the BR can query this variable based on the Time scenario and thus know which forecast has been initialized? How do you do this in your OS?
I am trying to calculate Average Percent Period Movement (AVPPM) — i.e.:AVPPM=Actuals(Current)−Actuals(Prior Period) / ∣Actuals(Prior Period)∣×100 = and store the result in S#AVPPM for the current POV.I tried using the below script in Business rule or Scenario member formula for S#AVPPM but not getting the correct result. api.Data.Calculate("S#AVPPM = (S#Actuals - (S#Actuals:T#POVPrior1)) / (ABS(S#Actuals:T#POVPrior1))*100", True)Appreciate any help!
Hi All, I created a Business Rule to export all the GROUPS that i have in OS applciation. i try to export the data in a file. i tried below option , it did not work created BR and executed there as File output Created a Data Management Sequence and added 2 steps. 2 for BR and other for File Export. But my File export fails as NAME Empty Below is the error Error processing Data Management Step 'ExportGroups'. Name is empty. Below is the BR i used. 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.Extender.BRGetAllGroups_1 Public Class MainClass &nb
Is there a function, or other method, to get the workflow an enitty is assigned to, if it is assigned? Seems like an there should be an api for this but for the life of me I can not find it. Thanks in advance.
Hello, We are implementing the task manager and one of the requests is for the users to be able to know when comment is added. Is there a way to build business rules so email is sent when comment in TM is added. If someone already has it would you be willing to share it? thank you, Ola
Hello,We are trying to find the best way to determine if a user is using web-based or Windows App OneStream environments to customize a dashboard experience. For now, we are using the si.WebServerURLByClient to determine this which works but seems a bit clunky. Is there a better call to determine which environment a user is in? Thanks in advance.Brett
Good afternoon, I need help with translating a balance account. We set it up to calculate job to date and load its local currency value, then I wanted to translate it using a job to date rate (also setup as the balance account). The formula attached to the account is for every foreign base entity executes this: api.Data.Calculate("A#JTD_COST:V#YTD:F#EndBalLoad:U8#None:C#USD = RemoveZeros(A#JTD_COST:V#YTD:F#EndBalLoad:U8#None:C#Local * A#JTD_FX_RATE:V#YTD:F#EndBalLoad:U8#None:C#Local)",,,,,"U1#Active.base") The problem is that when I set the original account with Formula Pass then I get an error during the consolidation suggesting the invalid destination data unit in script. When I don't attach any Formula Pass then nothing happens at all. Any suggestions what I miss or how else balance accounts can be translated? Thank you, Ola
Is it possible to add members to both main and alternate hierarchies using EventHandler from source. Was not able to achieve using existing code. Below code is being used to add new members from source to the Flow dimension which works for main hierarchy but not adding under Alternate hierarchy, any help is appreciated. The new member needs to get added under both parents below Dim flowDimName As String = "Product_Attributes" Dim flowMF As String = "F#TopProductAttributes.Base" Dim flowLookup As Dictionary(Of String, MemberInfo) = Me.CreateMemberLookupUsingFilter(si, flowDimName, flowMF) Dim ExistflowLookup As List(Of MemberInfo) = BRApi.Finance.Metadata.GetMembersUsingFilter(si, flowDimName, flowMF, True) Dim flowAddedMembers As New Dictionary (Of String, String) 'Set the parent to add new FLOW Members under Dim tFlowColIndex As Integer = (objTransformer.TransformerDimensions(StageConstants.MasterDimensionNames.Flow).DataTableColumnIndex) + S
I need a BR to help me schedule a Task Manager Refresh through out the day. Anyone have something that has worked for them? Cant find an BRApi that addresses this.
1) Is C# now widely used for Business Rules?2) Is there any plan to support C# in member formulas?3) For those who moved their business rules from vb.net to C# - why you did it and what benefits you get out of it?4) In OneStream - is there anything that one can do in vb.net but can't in C#? If so, what are they?Thanks in advance for sharing your experience.
I can't seem to figure out why the CreditAmount in the JournalLineItem isn't reflecting the number that I assign to it. It's always zero no matter what. Is anyone experiencing this issue? see my code below. Sub CreateJournal(ByVal si As SessionInfo) Try 'Set up a new journal header. Dim journalObjectHeader As New JournalHeader() With journalObjectHeader .Name = "Test_Journal" .Description = "This is a test journal" .WorkflowProfileID = si.WorkflowClusterPk.ProfileKey .MemberIds.Scenario = si.WorkflowClusterPk.ScenarioKey .MemberIds.Time = si.WorkflowClusterPk.TimeKey .JournalStatus = JournalStatus.Working .IsSingleEntity = False End With Dim journalObjectLineItems As New List(Of JournalLineItem) 'Create the first journal line item Dim jnLineItem1 As New JournalLineItem With jnLineItem1 .EntityId = BRApi.Finance.Members.GetMemberId(si, DimType.Entity.Id, "100_US") .AccountId = BRApi.Finance.Members.GetMemberId(si, DimType.Account.Id, "10220030") .FlowId = BRApi
I'm looking copy an existing data adapter (screenshot below) from the RCM solution into a different workspace and use it within BI Viewer for custom dashboards. I believe the 'GetReconsWithStatusGridView' function is stored within the 'Services' assembly folder and 'ReconService.cs' is the file within the folder that needs called. I have 'Is Shareable Workspace' set to True. Since the method query references WSMU, I need to update that in order to properly call the underlying business rule. That's the part I'm having trouble with. I've tried a wide variety of syntax to no avail. Examples: {Workspace.OFC.RCM}{GetReconsWithStatusGridView}{AccountFilter=...}{Workspace.OFC.RCM.Services}{GetReconsWithStatusGridView}{AccountFilter=...}{Workspace.OFC.RCM.Services.ReconService}{GetReconsWithStatusGridView}{AccountFilter=...}Does anyone know the proper syntax to place in my copied data adapter? Are there any other steps I need to take to properly refe
Has anybody seen this error? If so, how did you fix it? I can run the SQL query in question from a Data Adapter just fine, but when trying to run it from a BR I get the above error. At this point all parameters are hard coded in the query (entity, dates, scenario) as I'm just trying to make sure it runs. This is running against the QAD gl product, which uses the Progress database.
HiI'm trying to find out the correct way to reference a function in another Workspace assemblies file.For example say i have:1) XFBR business rule assembly file (ParamHelper.Vb)2) Dashboard Extender business rule assembly file (SolutionHelper.Vb)I want to call a function that is in SolutionHelper.vb from my code that sits in ParamHelper.vbIn standard business rules this was easily achieved using Referenced Assemblies in the business rule property and then adding something along the lines of this below: Dim _MYHelper As New OneStream.BusinessRule.DashboardExtender.HPB_SolutionHelper.MainClassJust not sure how the same is achieved using assemblies Thank you
I am trying to extract cube data using FdxExecuteDataUnit however, the filter does not seem to be filtering any data. Any ideas what the issue could be? I am seeing multiple flow members in the data table. Is there also a way to do all base members for a dimension? Dim dt As DataTable Dim cbName As String = "FinConsol" Dim ent As String = "E#124" Dim cons As String = "C#Local" Dim scen As String = "S#Actual" Dim time As String = "T#2025M1" Dim view As String = "V#YTD" Dim filter As String = "Origin='Import' AND Flow='EndBalInp' AND Account = 'NetInc' AND UD7 = 'GL_Load'" dt = BRApi.Import.Data.FdxExecuteDataUnit(si, cbName, ent, cons, ScenarioTypeId.Actual, scen, time, view, True, filter, 1, False)
The below code returns the Plug Account name for an Account, taken from the Plug Account property on the AccountIt is a DynamicCalc on UD8. Set up a U8 member, f.ex. "YourName" Api.Account.GetPlugAccount returns a long string that contains the Plug Account Name For each Account that has a Plug Account, the string will contain "DimId: 22", so this can be used as filter.The Plug Account name will be stated directly after "Name: ", so this can be extracted from the string. In the below example, "NA" is returned where there is no Plug Account. The Plug Account Name will be shown when using V#Annotation:U8#YourName on Accounts ---------------------------------------------- Dim AccPlugAccName As String = "" ' Fetch the Plug Account propertyDim fetchedValue As String = Api.Account.GetPlugAccount(Api.Pov.Account.MemberId)?.ToString() ' Check if the fetched string is not null/empty and contains "DimId: 22"If Not String.IsNullOrEmpty(fetchedValue) AndAlso fetchedValue.Contains("DimId: 22")
Hi, We have a seeding rule that is copying zeros: sourceActualsBuffer = api.Data.GetDataBuffer(DataApiScriptMethodType.Calculate,S#Actual_Opco:U5#None,False, destinationBuffer) I am trying to change it so it does not include zeros, by applying the removezeros function: sourceActualsBuffer = api.Data.GetDataBuffer(DataApiScriptMethodType.Calculate,"RemoveZeros(S#Actual_Opco:U5#None)",False, destinationBuffer) When I do this, I get an error see attachmement. I tried to change the quotes RemoveZeros("S#Actual_Opco:U5#None") but then i get a different error when validating. Could not find anything in the reference on how to fix this. Anybody can help?
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.