Discuss formulas and business rules for your application.
Recently active
When creating a dashboard in the default workspace you are able to pass dashboard parameter values to the data management sequence through the parameter section of the execution script:You can also use an Input Value parameter and create an extender process to populate the Input Value and then retrieve that value for a DM sequence or BR.However, when using user defined workspaces, I have only been able to successfully pass parameter values from a dashboard using a literal value (process on combo box executes a rule to populate a literal value with the most recent user selection, literal value is read by DM and BR processes).The issue with this literal value process is that the value is left at the value from the last execution of combo box selection so it requires the user to change the value to some other value, then reset the value to ensure the literal value has a valid stored value.Additionally, this process if being used by multiple users, may cause confusion if two users are chan
For starters, we're on 8.2.1.In reviewing some automation rules that were written by my predecessors, I've been trying to move away from the Harvest folder batch processing. ...mostly, because I don't want to deal with cleaning up the clutter it leaves in the filesystem.In most cases, it's trivial to switch to BRApi.Import.Process functions and I've done this successfully but I find that running the Process Cube from a BR acts a bit weird. BRApi.DataQuality.Process.StartProcessCube and BRApi.DataQuality.Process.ExecuteProcessCube both start the process just fine and the process does exactly what it should. However, both methods only start the process and immediately move on to the next instruction. I can't seem to evaluate them for failure, duration, or anything else as they both instantly and always return that they finished successfully. Question 1: Both functions seems to behave identically and incorrectly (or at least unintuitively and undesirably for me in this case.) Other than t
Hello OneStream Community,I am working with a Cube View where I need to display the Income Statement data for the end of every year (December). The data should show up as the beginning balance for the January month in the subsequent year. To achieve this, I used a Row Override1 member filter with the formula T#povprioryearm12.The Cube View includes four dimensions: Entity, Division, Cost Center, and Accounts. However, I am experiencing slow loading times when the view is being accessed. it is not exporting to Excel to validate.I would like to know if there are any best practices or strategies for improving the performance of the Cube View in this scenario. Are there specific optimizations I should consider for the member filter, the dimensions, or the Cube View configuration to reduce loading times?Any advice or recommendations would be greatly appreciated!Thank you in advance!
Hi All,Let's say we have a table:Fruits (Annotation) Updated Fruit Value (annotation) Price of Fruit (input numerical value)apple banana $1.99banana kiwi $2.99strawberry  
Hello, I recently had help modifying a rule so it would only run once for a multi year scenario, now I am having an issue trying to run the rule on other scenarios. How would I tell this rule to ignore the time condition for the budget scenario. The data management job set up on the workflow profile won't currently run due to line of code added: ' NEW CHECK TO ONLY RUN ON THE START YEAR OF WF RANGE TIME. If I remove it, then the calculation doesn't work for my forecast scenario properly. I basically somehow need to tell it to ignore that line for the budget scenario. Below is the full code. Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As DataQualityEventHandlerArgs) As Object Try 'Define a switch to control event processing, since many of these are reference examples we do not want them to run all the time Dim processEvents As Boolean = False 'Set the default re
Hi, I'm trying to learn more about the business Rules and what they are doing. Where can I find the various function implementations. For Example: I have this function Dim connectionString As String = GetConnectionString(si, globals, api) For the GetConnectionString function where is the code for this funciton ? so I can read and understand what its doing ? If this is in the API, I have been looking there today, can you reference which folder / document I can get this. Thanks for your help in advance.
Hello everyone, I am experiencing an issue with a dynamic calculation rule in OneStream for a user-defined dimension (UD1) grouping entities. The rule works correctly for all Consolidation dimensions except for "Translated," where the data is not calculated or displayed at the UD1 level, even though the base entities have values for that member. Context: I have a dynamic calculation rule that sums the values of base entities grouped under a UD1. The rule’s logic is the following: Dim entity As String = api.Pov.Entity.Name Dim text5 As String = api.Entity.Text(5) Dim ud1 As String = api.Pov.UD1.Name Dim ud1Man As String = ud1.Substring(1,3) Dim parent As String = "P" & ud1Man Dim result As Decimal = 0.00 'Filter the entities by Text5 Dim entityPk As DimPk = api.Dimensions.GetDim("Entities").DimPk Dim entityList As List(Of MemberInfo) = api.Members.GetMembersUsingFilter(entityPk, "E#PL00.Base.Where(Text5 Contains '" & ud1 &"')", Nothing) 'If we deploy the entities with an
Hi Everyone. What I want to achieve is to obtain the amount of three times in a single getdatacell. What I have is the following: Dim first As Decimal = api.Data.GetDataCell("S#[" & strScenario & "]:" & timesTest(0) & ":E#30801_30800:A#FINVOLUME:F#None:O#BeforeAdj:U1#D0000:U2#P0100:U3#LOCAL_DATA:U4#PJ00000").CellAmount The issue is that I need to use three different times, but I don’t want to create three variables to sum those values, and I also don’t want to do something like the following: 'Example Dim tot as Decimal = api.Data.GetDataCell("#Time1" + "#Time2" + "#Time3") So, I wanted to see if there is a way to put all the times together in one so that the sum is done internally, or if it can only be done as shown above. I hope you can explain the best method to achieve this.
Hi Team, I would like to fetch and update the Entity Relationship Properties for the Entity Dimension members via Business Rules.The below peace of code works fine for only when I pass the Actual and Budget but when i pass the other scenario Type like Scenariotype 1 to 8 I get the error Object is not set to an instance of an object.Dim Scenario As String = args.CustSubstVarsAlreadyResolved("Param_SecnarioType_EO_24")'The above value i get it from the combo box as delimited list Dim Scenarioid As Integer = BRApi.Finance.Members.GetMemberId(si,dimtype.Scenario.Id,Scenario)Dim MyScenarioTypeid As ScenarioType = BRApi.Finance.Scenario.GetScenarioType(si,Scenarioid)Dim Timefilter As String = args.CustSubstVarsAlreadyResolved("Param_Time_24")Dim Timeid As Integer = BRApi.Finance.Members.GetMemberId(si,dimtype.Time.Id,Timefilter)Can you please help me with the correct way to get the scenario Type.
Has anyone had success taking a date, say 12/2/2024, and the cube name I assume, and converting it to a period like 2024M12?
Hello,Does anyone know an effective way to alter the amount column of a table using a SQL script?Use case: the client is bringing in what they call "Production Downtime" to the system, which shows hours of downtime by plant based on a reason (attribute). Using a Dashboard Data Set rule, I created a SQL query to return specific results from the stage table based on Entity and Plant selections. This rule is linked to a data adapter and fed into the BI Viewer.In their BI Viewer report, it shows current Month vs PY Month. Since this data is coming in daily, when the user is looking at the current month, (today is Nov 21) the current month shows 21 days' worth of downtime data. They would like the PY Month to also represent 21 days of data.So, I would like to create a "ratio" variable that reads the current day of month and divides by the total days in month, and multiply the PY data by it. I created something similar in a UD8 calc:(SQL Is not my strong suit) how can I apply this "ratio" to
We are trying to build a one side match rule for AR TXM. Within our DS1, we have transactions that combine and net to zero. We are finding that the one side rule is matching transactions by the amount instead of first summing the group of transactions to zero, which is resulting in incorrect matches. Is there a way to match negative amounts to positive amounts of the same balance (i.e. absolute value, but then we still need the net to be an accurate zero). Is there a way to leave the "amount" field off of the definition page. Also, whenever we try to enter in a tolerance, we get an error message to select the tolerance type, but there is no option to do so on a one-side rule. We are having the same issue with the many to many rules where the rule is not summing up the transactions into one before executing match
Hi Experts, I am working on TransformationEventHandler rule in which we need to read the first 4 columns of a text file that is being uploaded to Workflow Import so I can do some sanity checks and error out if they are not correct. Does anyone have sample code that reads the values of file? I checked everywhere but not much documentation on this. Also, I placed this code in "ParseSourceData" BREventOperationType. Not sure if this is correct or need to put under "ParseTransformationRules"? Thanks in advance, PM
Hi Everyone. I am trying to run a CustomCalculateBR in another BR, and I have the following for the variable namevaluepairs, but I would also like to pass parameters in this BR. I have been investigating but did not find a solution. Similarly, I would like to ask if passing with .base will work the same way as if it were in a step or not. I would appreciate it if you could help me. Dim mvp As New Dictionary(Of String,String) mvp.Add("Cube","HLFPLN") mvp.Add("Entity",strEntTx1) mvp.Add("Consolidation","Local") mvp.Add("Scenario","|WFScenario|") mvp.Add("Time","T#|!PLN_ParamFcstMths!|") mvp.Add("View","None") mvp.Add("Flow","None") mvp.Add("IC","None") mvp.Add("UD5","None") mvp.Add("UD6","None") mvp.Add("UD7","None") mvp.Add("UD8","None") mvp.Add("Parameters","test=ValueTest") BRApi.Finance.Calculate.ExecuteCustomCalculateBusinessRule(si,"PLN_ThreeMonths2","Test",mvp,CustomCalculateTimeType.MemberFilter)
Hi - The below if condition is not working if the cube is multi cube, it works with Single cube? Any Idea why If api.Entity.OwnershipType().ToString.XFEqualsIgnoreCase("Holding") Then
Hi Everyone. I would like to know how I can perform a setdatacell on an entity that is not in my Data Management configuration. I obtain the value of the entity from Text 1 of my entity assigned to the POV, but it does not allow me to apply a setdatacell or a calculate to assign a new value to that entity. Therefore, I would like to know how I can achieve this. My Data management configuration: The example code I am using: Dim strEntity As String = api.Pov.Entity.Name Dim strScenario As String = api.Pov.Scenario.Name Dim strTime As String = api.Pov.Time.Name Dim povEntityId As Integer = api.Pov.Entity.MemberId Dim strEntTx1 As String = api.Entity.Text(povEntityId, 1) 'setdatacell api.Data.SetDataCell("S#[" & strScenario & "]:T#" & strTime & ":E#" & strEntTx1 & ":A#S_ConvFactorInner:O#BeforeAdj:U1#D0000:U2#P0000:U3#LOCAL_DATA:U4#PJ00000:U5#None:U6#None:U7#None:U8#None",totAll,False,True) 'Data.Calculate api.Data.Calculate("Cb#HLFPLN:S#[" & strScenario &am
Today, a customer asked me: Where do stored calculations store data? api.Data.Calculate If Statements In stored calculations, If Statements are helpful to specify that a formula is only required to execute on specific Data Units, as shown in the image below. If ((Not api.Entity.HasChildren()) And (api.Cons.IsLocalCurrencyForEntity())) contains two logical operators (And and Not). Due to the AND operator, the statement api.Data.Calculate("S#Forecast = S#Actual") between Then and End If will only run if both of the following are true: The Entity is a Base-level Entity Member, i.e.: does NOT have Children (Not api.Entity.HasChildren()) The Consolidation Member is Local indicating the Entity Member's local currency (api.Cons.IsLocalCurrencyForEntity()) The statement api.Data.Calculate("S#Forecast = S#Actual") will copy the S#Actual data buffer to the S#Forecast data buffer. The If...End If
Hi community, Does anyone have a good member formula for calculating income/equity attributable to minority interest on the P&L and balance sheet? My understanding is in our case we can report this in a simple manner with just two additional accounts, one on the P&L and one on the balance sheet. In my mind the P&L account would work something like the following, if ownership type equals Non-Controlling Interest then multiply net income by (1 - percent ownership). I'm currently trying the below formula for the P&L account, but not yielding any results. After running a consolidation there is no data in the new account. Any suggestions on how to solve this? Thanks, Dim dValue As Decimal = api.Entity.PercentOwnership() Dim objOwnershipType As OwnershipType = api.Entity.OwnershipType() If objOwnershipType = "Non-Controlling Interest" Then api.Data.Calculate("A#NCI_Income:I#None:F#PL_LOAD:O#Import:U1#None:U2#None:U3#None:U4#None:U5#None:U6#None:U7#Data_Load:U8#None = A#NetI
What is the correct syntax for the filter expression in the DataUnit method command used in BRAPi.Database.ExecuteMethodCommand()?We are trying to filter on Flow member EndBal. The following syntax does not work:MethodQuery: {FinRpt}{CorpEntity}{}{}{ACTUAL}{2024M1}{YTD}{True}{F#EndBal} results in the follwoing error:The expression contains invalid date constant '#End_Inp'.MethodQuery: {FinRpt}{CorpEntity}{}{}{ACTUAL}{2024M1}{YTD}{True}{WHERE Flow LIKE '%EndBal%'} results in the follwoing error:Syntax error: Missing operand after 'Flow' operator.{WHERE Flow = 'EndBal'}, {WHERE Flow IS 'EndBal'}, and other variations all result in the same syntax error.
We have created a set of confirmation rules for our forms. However, there is a company that is failing the rule because of an adjustment that must be made by recommendation of the auditors but would not otherwise be accepted. Is there a way to exclude just this company from the rule?
Hi I have two source accounts bringing in same amounts for multiple Entities. Some of the entities are local and some overseas. The only unique identifier is Text7 field in the entities. How can I map the source accounts to OS accounts using Entity Text Field 7. Below is the example Acc 1000 - $7000 E#AUS Acc 2000 - $7000 E#AUS Acc 1000 - $9000 E#NZ Acc 2000 - $9000 E#NZ In the above example Amount $7000 belongs to local Entity so should be mapped to A#Local_Tax and Amount $9000 belongs to overseas Entity so should be mapped to A#Overseas_Tax. The problem is in the import file the amounts 7k and 9K sit in both local accounts Acc 1000 and Acc 2000. The only unique identifier is the Text 7 value in the Entity. Please advise if I can use this text value in Composite Transformation rule or if I need a complex business rule. Any suggestions are welcome, Thanks Sam
Looking into a way to turn off translation for specific entities, yet only for the budget scenario and select gain/loss accounts. Having translation on for Other Expense and Net Income as it relates to budgeting is skewing the EBIT bottom line. Is turning translation on a budget scenario and specific Entities possible? Thanks in advance,
Hello, I am creating a dashboard with a grid view and gridview is binded to a Data Adapter which calls a business rule to get data thru an external web-api call. Now I have to show data in Gridview and the record count on the dashboard on a button click. I have used following settings on the button. The Selection changed server task is happening first and then the data load is happening, so I am able to update the literal parameters with counts after data load but they are not reflecting on the dash board. Any help appreciated.
Hello Team I am currently using the "FDXExportDataUnit" function to load data into a DataTable using the following code: Dim dt As DataTable = BRApi.Import.Data.FdxExecuteDataUnit(si,"FPA_CM","E#Entity_top.base","USD",scenarioTID,Scenario,timefilter,"MTD",True,"Amount <> 0 And Flow='EB'",16,False) he resulting DataTable contains 678,123 records. I plan to insert these records into a Snowflake database. To speed up the inserts, I am dividing the DataTable into multiple DataTables of 150,000 records each. However, the inserts are currently happening sequentially, and I want to run them in parallel. I am considering the following options: Pass the split DataTable as a parameter to a Data Management sequence:This would allow me to call the sequence using "QueueDataManagementSequence" so the process runs on different servers. I need assistance on how to pass the DataTable as a parameter to the sequence. Run bulk insert SQL statements in parallel using threading tasks:
Hello OS community,I am currently developing my Cash Flow Statement and I want to add a condition for a loan account. If it has a positive balance in the Working Capital Requirement variation flow, I want to map it under one CFS table. However, if it has a negative balance, I want to map it under a different CFS table. How can I implement this condition in my Cash Flow Statement?
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.