Discuss formulas and business rules for your application.
Recently active
I'm looking to call a business rule that is located in a different workspace within Assemblies but am unsuccessful. The first screenshot below shows my DM step configuration. The business rule I'm trying to call is an out-of-the-box rule within the Financial Close solution. The second screenshot shows the workspace (namespace prefix = OFC), the assembly (RCM) and the business rule (DiscoverRecons). The third screenshot shows the tool tip when you hover over "Business Rules" on the DM step. I've attempted many variations of the yellow highlighted syntax, always returning an invalid business rule error. The fourth screenshot shows the out-of-the-box DM step I'm emulating. I used this to verify the parameters I'm passing in work which they do. I've ensured that both the current workspace and OFC workspaces are sharable and include the shared workspace names. Does anyone know the correct syntax to call this rule into my DM step? Screensho
Hello- Is there any reason why the below if , then, else statement is not working correctly? Val2 has data when I only return it in a test dynamic calc, but when incorporated into the below formula, it is reading a zero for Val2. Any help would be greatly appreciated:
Hi all, I'm triggering a DM job using the REST API. The job is running a business rule. I handle errors in the BR but I need to actually return the success or failure as a response to the postman request. Right now, I get a success message no matter what happens in the BR. Thanks in advance!
Hi all, I'm currently developing a dashboard that will likely be used by multiple users at the same time. Users will be able to set some initial parameters within the dashboard, and click on a button that will trigger a BR that will return some output rows within a table in the database. After the process is complete, the user will be able to see the output rows through the following SQL Table Editor:the parameters that you can see in the "Where Clause" are literal parameters that are set from within the BR when it is triggered by the user (using BRApi.Dashboards.Parameters.SetLiteralParameterValue()), and their value depend on the initial parameters that the user selected in the dashboard.The problem is, I saw in some posts within the forum that literal parameters are "common" to all users, so every time one user will click the button and launch the process, the literal parameters will be changed. This is a problem, because we expect users to use the dashboard simultane
I'm driving myself a little crazy at the moment. Sometime in the last few days, I stumbled across a Community Post (I think) about how to use System.Reflection to programmatically list OneStream API object methods, overloads, parameters, etc. At the time I saw it, I thought "Oh, that's cool!" and remembered that if I needed to find it again, I just needed to search for "Reflection" in community posts. Well, for the life of me, I can't find the post again.Does anyone know of a post that describes how to use System.Reflection's methods, like GetMethods on OneStream API objects? I know I'm being lazy and could work out the code myself, but what I read had already worked out the BindingFlags and other parameters on the calls that were specific to OneStream.
Hi everyone, I'm working on a Business Rule in OneStream and could use some guidance. I’m trying to build a rule that targets a user-defined parent rollup within the Entity Dimension. The goal is to automatically remove the relationship between that rollup and any base-level child entities whose name or description contains a specific keyword — in this case, "YS". Here’s what I’m aiming for: The rule should accept a parent rollup name (e.g., Global_excl_YS) It should loop through all children of that rollup If a child is a base member and its name or description includes "YS", the rule should "remove the relationship" Parent or intermediate rollups should remain untouched I’m planning to implement this as an Extensibility Business Rule, but I’d love to hear if anyone has done something similar or has tips on best practices for metadata manipulation in this context. Thanks in advance! ' Define dimension and parent rollup as parameters or hardcode here &nbs
I am trying to write a query to the FxRates application table however, I cannot find a function to obtain the FxRateId as seen below. I see that the ID changes based on the year and not just the rate type.
We have a business rule that, after loading data, runs a Process Cube. When using this with the batch harvest API, it behaves pretty much as expected in that, after the process is complete, it returns a status and execution time and all that. However, I have grown to dislike the file clutter that results from years and years of harvest file processing and I'm updating the code to use the BRApi.DataQuality.Process functions. Both ExecuteProcessCube and StartProcessCube can be used for this with the main difference being the objects needed to kick them off and the object types they return: Start returns a TaskActivityItem and Execute returns ProcessCubeProcessInfo. Superficially, I could walk away from this effort right now and it would work but I've noticed one really annoying issue: neither returns a real status of the process itself. This appears to be because our Process also runs a Calc. Both Start and Process "succeed" nigh-instantly while the Calc continues to run for five more mi
Dear Community Members,Has anyone experienced information in the log being redacted. I found this in the latest documenation.However, i see no pattern of what is considered sensitive. I have a data table dump in the decimal positions are redacted.I am logging the keys and values of two dictionaries. in both dictionaries the value is an integer. One value is shown while the other value in redacted. Both values come from a text member of a dimension member. In other cases i am logging the name of the business rule and the name of the function. Sometimes the RULENAME is redacted, sometimes it is not. Which leads me to believe that the logic thinks that the name is sensitive?! Is this sensitivity controllable maybe on the app settings on the server? Cause it seems overly sensitive or plainly wrong in determining what is sensitive and what is no.
Hello, I wrote a simple formula for Wip Rev that checks the amount in Earned Revenue (that is calculated too) and calculates the difference between its current value(POV) and prior year end value(POVPriorYearM12) - this part worked, but then I added a conditional statement saying that if Earned Revenue is zero then Wip Rev should be zero too else run the math (POV - POVPriorYearM12) and only first part works, but math doesn't. I tried a similar statement for the dynamic calc and I was successful, but here no. Please let me know if you can look at the statement and suggests what is wrong... thank you
In a calculation, I'm copying data from one scenario to another. I have no issues with the amounts in local currency, but with the USD currency I do, because it retains the same value as the scenario I'm copying to, instead of the value it should actually have. Dim TimeName As String = BRApi.Finance.Time.GetNameFromId(si, si.WorkflowClusterPk.TimeKey) Dim entity As String = api.Pov.Entity.Name Dim index As Integer = TimeName.indexOf("M") Dim monthNumber As String = TimeName.Substring(index + 1) '1 'api.Data.ClearCalculatedData("S#FORECAST_" & monthNumber & "_AT_CY_BUDGET_RATE",True,False,False,True) api.Data.ClearCalculatedData("S#FORECAST_" & monthNumber & "_AT_CY_BUDGET_RATE",True,True,True,True) 'BRapi.ErrorLog.LogMessage(si,"Time: " & api.Pov.Time.Name & " entity: " & entity & " currency:" & api.Pov.Cons.Name) 'If ((Not api.Entity.HasChildren()) And (api.Cons.IsLocalCurrencyForEntity())) Then If api.Cons.IsLocalCurrencyForEntity() Then 'api.D
Dear community, One of my use case is to create a function that I would commonly use in any other workspace. I haven't seen a community message about it, and the documentations does not specify how to do so, so here's the use case : I have a Workspace A (name: WorkspaceA), with an assembly named WA_Assembly, and in it are my services & functions that I want to reference and use. I have a Workspace B, where I need to call the functions from Workspace A. SOLUTION : Create a new dependency in Workspace B : Dependency Type : "Workspace Assembly" Shared Workspace Name : WorkspaceA Dependency Name : WA_Assembly Then, in a given Workspace B service, use Imports Workspace.WorkspaceA.WA_Assembly (vb.net) or using Workspace.WorkspaceA.WA_Assembly (C#) for referencing the Shared Public Functions. Then you will be able to use these functions in another workspace ! Just adding this message for future references :)
Hello, In my BR, I need to incorporate logic that executes code based off the status of a separate WF Channel.E.g. I have 2 workflow channels and the first contains Workspace-->Import-->Validate--LoadThe second is simply Workspace. This second workspace has a button that kicks off a DM job that executes a BR.In the BR, the code needs to read the status of the first channel, and if it is not completed through process, execute specific code.Any ideas?
Hello, is there a BR function where I can get a Workflow Status (example "Pre-Process Completed, Locked")? When I am using brapi.Workflow.Status.GetWorkflowStatus I only get UniqueId and Name. I want to use the status in a Cube View to display for users. Thank you!
I currently have a metadata file being created by an Extender BR and saved down to the Application Database: Case Is = ExtenderFunctionType.ExecuteDataMgmtBusinessRuleStep 'Export File Dim fileName As String = "AccessoryMetadata.csv" Dim filePath As String = $"Documents/Public/XFDocs/XFDocs_Public" Dim ud1DimPk As DimPk = BRApi.Finance.Dim.GetDimPk(si, "MainProduct") Dim category As String = "" Dim businessStream As String = "" 'Export CSV to User Temp Folder Dim listOfParents As List(Of memberinfo) = BRApi.Finance.Members.GetMembersUsingFilter(si, _ ud1DimPk, _ "U1#ReportingProduct.Descendants.Where(" & _ "Name Contains Accessories" & _ "And Name <> 15_Accessories" & _ "And HasChildren = True)", _ True) Dim csv As New Text.StringBuilder csv.AppendLine("Name, Description, ParentName, Category, Business Stream") For Each parentMember In listOfParents For Each childMember In BRApi.Finance.Members.GetChildren(si, _ ud1DimPk, parentMember.Member.Me
I am having difficulties getting either the member ID or member name into a list using GetMembersUsingFilter.I have got this so far.Dim members As List(Of MemberInfo) = api.Members.GetMembersUsingFilter(api.Pov.AccountDim.DimPk, "A#BalanceSheet.Base.Where(Text2 = RF_Debt)", Nothing)However, this gives me neither the member ID or member name.
Hi everyone — I could use a bit of guidance. I'm working on a function to remove a member's relationship, and I'm stuck on how to properly call relationshipPks As List(Of RelationshipPk). I'm not entirely sure what this parameter represents or how to construct the list it expects. What does RelationshipPk refer to in this context? How should I build the List(Of RelationshipPk) to pass into the method? Any examples or explanations would be greatly appreciated. Thanks in advance!
Hi Everyone. I want to get the sum of multiple entities, like in the example below, but for now I'm only getting errors or values with 0 'First option Dim strList As String = String.Join(", ", (From l In lstMI Select "" & l.Member.Name & "").ToArray()) Dim lstMI As List(Of MemberInfo) = BRapi.Finance.Members.GetMembersUsingFilter(si, api.Pov.EntityDim.DimPk, "E#Kazakhstan.Base.Where(Text1 = 'M_S_KAZAKHSTAN')", True) api.Data.GetDataCell("A#411000:E#Root.list([" & strList &"]):C#Local:O#Top:U1#ALL_DEPARTMENTS:U2#INNER:U3#COUNTRY_RPT:U4#ALL_PROJECTS").CellAmount 'Second Option api.Data.GetDataCell("A#411000:E#Kazakhstan.Base.Where(Text1 = 'M_S_KAZAKHSTAN'):C#Local:O#Top:U1#ALL_DEPARTMENTS:U2#INNER:U3#COUNTRY_RPT:U4#ALL_PROJECTS").CellAmount What I ultimately want to do is to get those values so I can change the following, so that the entity includes all those base entities that meet the filter, and I can get the correct value and use it in my Calculate. Dim DBICtry As
I have seen several MaketPlace solutions rules that give me a warning message when I compile in v 7.1.1. See the example below:Warning at line 410: 'Public Overloads Function GetBusinessRules(si As SessionInfo, brType As BusinessRuleType) As List(Of BusinessRuleSummaryInfo)' is obsolete: 'This is a temporary function used by Marketplace Solutions for backwards compatibility with old XF versions. Please change your code to use supported functionality.'.Not sure how these rules will behave when we upgrade to v 8.5, but I was wondering if there is an easy fix out there which will remove this warning message.
Hi, In our application, we uninstalled and re-installed Cloud Administration Tool, after did this trying to compile CAT_executeCopy while doing this getting validation errors. My concern is after uninstall CAT, is it mandatory clear CAT_executeCopy rule as well?
Is there a syntax to lookup the description of an entity that is NOT the pov entity? In the example below the pov_entity is XXXXXXX_Canada, but the entity I want to pull a description from is 00250. I am writing a rule in a ud8 member to try to pull this.Thank you,
Hi, I am trying to build a Drill back functionality in one of data source connector business rules. I tried looking into One Stream reference guide on Data Source connector business rules and I found below reference for nested Drill back functionality. But practically when I tried to drill back on a drill back detail row, OS returns following message. The click on the drill back is not even calling the connector business rules any more. Can someone help me with the ways to code with nested drill backs. I tried to follow the examples from Golfstream application. Private Function GetDrillBackTypeList(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Transformer, ByVal args As ConnectorArgs) As List(Of DrillBackTypeInfo) Try 'Create the SQL Statement Dim drillTypes As New List(Of DrillBackTypeInfo) If args.DrillCode.Equals(StageConstants.TransformationGeneral.DrillCodeDefaultValue, StringComparison.InvariantCultureIgnoreCase) Then '
Hi OneStream Experts, Is it possible to extract the value of "options" from the data management export data step using a extensibility rule?I used a syntax above to retrieve it. but, unfortunately no luck. Any help or suggestions are much appreciated.Thank you.
Hi All,I'm working with FdxExecuteCubeView and cannot export the dynamic calculations in V#Annotation even though I have includeCellTextCols as True. The OS documentation also says that it's possible to extract Dynamic Calc results.In my CubeView I have a dynamic UD8 which returns the value kilogram in this case: Here's the code I have right now:Dim nameValuePairs As New NameValueFormatBuilder(String.Empty,customParams,False) Dim filter As New System.Text.StringBuilder Dim parallelQueryCount As Integer = 8 Dim logStatistics As Boolean = False Dim includeCellTextCols As Boolean = True Dim useStandarFactTableFields As Boolean = False Dim dt As New DataTable dt = BRApi.Import.Data.FdxExecuteCubeView(si, cubeViewFilter, "","","","","", nameValuePairs, includeCellTextCols, useStandarFactTableFields, filter.ToString, parallelQueryCount, logStatistics) Return dtAnd the resulting data table shows 0.0 instead of kilogram: &nbs
Hi I have a derivate rule that I created that returns the absolute value of an amount based on column name. The column names are assigned in the data source and based on the data source column it will either assign an absolute value or a negative value. I want to be able to pull a column in my derivate rule that is a text attribute column and if the text equals something like "S5" it will do some type of conditional logic. With my limited experience with derivative rules and research it seems this cannot be done via a derivative rule. First question: Is there a way for me to do this? Second: If not, is there another alternative way that I can extract the text field of a column and based on that to do some type of additional logic?
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.