Discuss formulas and business rules for your application.
Recently active
Hello OneStream experts, We are trying to extract a maintenance unit and all it's components underneath it using a BR/Extensibility rule with the latest OS version - 9.0.1. But, however after the run we could able to see a empty xml in the fileshare folder. Below is the snippet of code which we are using. Any suggestions or help would be greatly appreciated. Thanks!Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As Object, ByVal args As ExtenderArgs) As Object Try Select Case args.FunctionType Case Is = ExtenderFunctionType.ExecuteDataMgmtBusinessRuleStep, ExtenderFunctionType.Unknown 'Get Configuration Settings Dim configSettings As AppServerConfigSettings = AppServerConfig.GetSettings(si) 'Data Management extract location Dim folderPath As String = FileShareFolderHelper.GetDataManagementExportUsernameFolderForApp(si, True, configSettings.FileShareRootFolder, si.AppToken.AppName
Dear community,We are using a Dashboard Extender Rule to trigger a ExecuteCustomCalculateBusinessRule.The business rule that we are running is a finance business rule that contains databuffer formula's.Since we can only run a finance business rule for one entity, we have created a MemberList that is running the Finance Rule each time for one of the 1500 legal entities that we have.This caused a Server Timer Out error.Do you know if the ExecuteCustomCalculateBusinessRule runs for each entity separately or for multiple entities in Parallel that is causing this TimeOut?
Hi Everyone, I have a requirement to pull the data in a particular format in my cube view. I have entity dimension members in a row which gets pulled from the cube. I have to pull the respective opening dates of the stores from the custom table in the cube view as a column. I have created the custom table (with store and opening date) and used a business rule to pull the opening date from the custom table. Now I want to display this in the cube view w.r.t the stores we are pulling in rows. For ex if we have a row with Entity (store) tx0001 in the cube view which has an opening date for the store in the custom table. This opening date needs to be displayed in the column w.r.t to the store in the row. How to achieve this? Thanks, Jeevan
HI Experts, I have a parser rule that looks at current attribute 9 and compares it with attribute 9 of last year December load and returns it as attribute 10 which helps me map the differences in Tiering. My issue is - the file is huge around 15k lines and its taking ages for this comparison. How can i make it run a bit faster ? Any help would be appreciated. PARSER RULE BELOW FOR YOUR INFORMATION: Public Class MainClass Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As ParserDimension, ByVal args As ParserArgs) As Object Try Dim Time As String = BRApi.Finance.Time.GetNameFromId(si,si.WorkflowClusterPk.TimeKey) Dim WfYear As String = Time.Substring(0,4) Dim WfYearPrior As Integer = WfYear - 1 ' 'Get the fields for comparison Dim AttrColPosition As Integer = 97 Dim CurrString As String = api.Parser.DelimitedParsedValues(AttrColPosition) 'Brapi.ErrorLog.LogMessage(si,"My Currr A8 is " &CurrString) &nbs
I came across this piece of code today:If (((Not api.Entity.HasChildren()) And (api.Cons.IsLocalCurrencyForEntity())) And api.Cons.IsCurrency())I'm guessing the last statement is to be sure that your Cons dimension POV is not on a "non-currency" member such as Elimination. Have I guessed correctly? And if so, then wouldn't this already be accounted for in the api.Cons.IsLocalCurrencyForEntity condition?If I haven't guessed correctly, then my question is what does this condition check for?
We have a Fcst BR that copies from a support scenario into our main Fcst Scenario. Our issue is that it will still overwrite data in the main scenario even when that scenario's Entity is certified. How do I prevent BR's form updating data that is certified. We had closed/certified our Fcst and then someone not aware was in a form that allowed them to update this supporting details scenario and saved which then updated the Fcst scenario. Is this something that can be managed on the Scenario setup - ie not allowing changes when certified or is this a type of loophole with BR's I have something similar I do for data loads where I check the status of the WF before running an automated Import/Validate/.../load process. in this case I am trying to prevent a ton of error messages when it gets to the load steps and finds the entity is certified. Would there be logic that could check the status of an Entity vs. WF that I might be able to insert into my BR.
I am looking to upgrade from 7.1 to 8. In the process of compiling dashboard extender rules, I get the following warning message.Warning at line 50: 'Public Overloads ReadOnly Property TaskInfo As XFSelectionChangedTaskInfo' 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. Use SelectionChangedTaskInfo instead.'. Question. Is there an alternative syntax that will achieve the same result? As best as I can decipher, the code in question (below) is to retrieve the value from the bound parameter LastActMonth_BDA into a new variable titled newLastActMth.Dim newLastActMth As String = args.TaskInfo.CustomSubstVars("LastActMonth_BDA")
I would like to use a parameter value in a KPI in my API_Calculate business rule. I have a literal value parameter and we will change the default value ahead of time to control which formula runs. I'm trying to pull the current default value with the following: Dim param As String = BRApi.Dashboards.Parameters.GetLiteralParameterValue(si, False, Nothing, "myFlag") When it gets to that line it throws a "Object reference not set to an instance of an object". Any ideas?
I'm currently trying to export the account dimension members and their properties through a csv file. I can get all the properties necessary, but I can't get the "Account Type" property through the extender rule. I'm currently using Account_Type= Brapi.Finance.Members.GetMemberInfo(si,dimTypeId,stkItem.Name,True,Nothing,MemberDisplay).Member.GetType.FullName , to get the account type in columns but it isn't returning the correct account type of the member and instead returning " OneStream.Shared.Common.Member " in the columns.
Hello, I have an account that is calculated via a business rule. I don't want end users to input into the account manually. If I set the account to allow input = false, will my business rule still be able to input data into the account? Or do I need to leave it set to allow input = true, but make sure every cube view that uses the account does not allow manual input? Thank you.
I using UD8 to call master data of entity. Other master data is work, but there is issue when I call entity parent. Seem like the business rules is not working. Not sure where the missing part. If api.View.IsAnnotationType() Then ' Dim EntityID As Integer = api.Pov.Entity.MemberId ' 'Return the Account name setting for this text-based View member '' Return api.Entity.GetLocalCurrency(EntityID).Name ' 'Dim ParentId As Integer = api.Pov.Parent.MemberId '' return api.Entity.par ''Return api.Pov.Parent.MemberId.ToString 'Dim objList As = BRApi.Finance.Members.GetParents(si, dimPk, entity, includeRootMemberInResult, dimDisplayOptions) 'Dim oblist2 = BRApi.Finance.Members.GetParents() 'Dim ParentId As Integer = api.Pov.Parent.MemberId ' Dim ParentName As String = api.Members.GetMemberName(DimType.Entity.Id,ParentId) 'Return ParentName 'Else ' 'Return a NoData Datacell ' Return api.Data.CreateDataCellObject(0.0,True, False) End If
Hi community,I have an issue where i have a member list tied to a bound list. The bound list uses a SQL query to get the top member of a given dimension. I have this bound list tied to a supplied parameter that I have attached to a dashboard. The issue is that when I run the dashboard, it is not triggering the bound list, even though i am using the supplied parameter. If I remove the supplied parameter and run the dashboard, it prompts me with the bound list parameter showing the value i want to return, and thereafter, when i put the supplied parameter back it works. It seems like the system needs to trigger the bound list first, but I haven't found a way to do so yet. Any thoughts?
I am not sure how to get the OData Link
Hello, I already have a data file for cost centers and their Default values, but now I need to include the before and after changed values to the cost center member. I found this code: Function GetRelationshipChangesForTimeSpan(ByVal api As Api, ByVal dimensionName As String, ByVal startDate As DateTime, ByVal endDate As DateTime) As List(Of RelationshipChange) ' Initialize a list to store relationship changes Dim relationshipChanges As New List(Of RelationshipChange) ' Use the API to retrieve relationship changes relationshipChanges = api.Data.GetRelationshipChanges(dimensionName, startDate, endDate) ' Return the list of changes Return relationshipChangesEnd Function How can I tell what data it's actually returning, what columns? Is there a better way to do this? Any help is greatly appreciated! Thanks!
Hi, I came across an update function in the business rules for ExecuteCustomCalculateBusinessRule Previous function (still in use) : BRApi.Finance.Calculate.ExecuteCustomCalculateBusinessRule(si, brName, functionName, nameValuePairs, timeType) New function for workspaces : BRApi.Finance.Calculate.ExecuteCustomCalculateBusinessRule(si, workspaceID, brName, functionName, nameValuePairs, timeType) We can indeed at least in version 8.5 create Finance Custom Calculate Services : However, these don't use any business rule name, hence my confusion ? How do we execute a custom calculate service which is currently within my workspace assembly services ? Or should it be used in a different way ? Regards,
In the example code for the Dynamic Dimension Service there appears to be a subtle bug which will affect refresh of the dimensions.ReadDynamicDimensionInfo(...) returns DateTime.Now:' This api method will build the required object, straight from an SQL query. Return api.ReadDynamicDimensionInfo(si, args, DateTime.Now, numSecondsBeforeCheckTS, _ dbConn, sql.ToString, Nothing, Nothing, _ "Name", "Description", "UniqueID", "Name", "Parent", "ParentID", "Parent", "AggWeight", True)BUT ReadDynamicDimensionContentTimestamp sets the Timestamp as DateTime.UTCNow:'Refresh once per minute (note: frequent refreshes such As one minute could degrade performance). Dim utcNow As DateTime = DateTime.UtcNow Return New DateTime(utcNow.Year, utcNow.Month, utcNow.Day, utcNow.Hour, utcNow.Minute, 0, 0, DateTimeKind.Utc)This will matter if your refresh period is < 13(?) hours AND if your TimeZone is ahead of UTC......It's an easy fix though!Steve
Hi allI'm trying to understand the purpose of the string 'itemName' variable that is available inside the assembly service factories.Does anyone know the intended purpose of the 'itemName'?And does anyone have some best practice guidelines or examples of this variable in use? Thank you very much everyone!Thor
Hello all, I have a field in my input dataset that I am tracing the mapping for and I can't figure out why One Stream is selecting the mapping rule it is using. The field is a cost center (UD1) value of '1VA' and it is not specifically called out in one-to-one or is it included as a composite range. I really think it should have been falling out as an exception. OneStream however tells me it is applying a Range Rule 'ABC' where the rule expression = '18~21'. I am flummoxed as to the reason why. I've double checked it a few times. Any ideas why this range rule was selected, or maybe an idea of other areas to check out to see why the cost center UD1 mapping is behaving the way it is? Thanks in advance. Happy to add add'l details if needed. Regards, DK
Hello. I have a set of Lookup Transformational rules. I have tried to load a mass upload for multiple lines of transformational rules through a trx file. I had a message saying the load has been completed with errors. However when I try to search for one rule I can't find it in the set of rules. When I try creating one of them manually it won't let me create it as it says it exists already, even though it doesn't show in the rule set. How can I undo what I did? How can I sort it out. A lot of people are depending of these rule set as it helps with Data extraction. Please support.
Hi Community, We have a requirement to bypass lines from the source data for each account if the total equals to zero, regardless of the UD1 value. For example if these two lines are in the source data: Account 1, UD1_1, -100 Account 1, UD1_2, 100 we want to bypass account 1. Is there a way to achieve this result? in our case this is happening because we are adding UD1 in the source system and it's triggering a lot of unused accounts to now appear on our staging table because of the different UD1 members.
i have blow code to copy the periodic values from YTD scenario but it didn't work Dim sourceBuffer1a As DataBuffer = api.Data.GetDataBufferUsingFormula("FilterMembers(S#" & sSourceForecast & ",V#PERIODIC,A#Top.Base,O#AdjInput)", DataApiScriptMethodType.Calculate, False, destination) Dim sourceBuffer1b As DataBuffer = api.Data.GetDataBufferUsingFormula("FilterMembers(S#" & sSourceForecast & ",V#PERIODIC,A#Top.Base,O#Forms)", DataApiScriptMethodType.Calculate, False, destination) Dim sourceBuffer1 As DataBuffer = sourceBuffer1a + sourceBuffer1b If (Not sourceBuffer1 Is Nothing) Then
Hi, Can anyone help with a way of creating username folder in Data management Export folder? This is in the File Explorer area. Is there a way to create a folder here through a business rule? Thanks a lot.
Is it possible to run a Finance Custom Calculate Business rule using the Assemblies Service Factory “FinanceCustomCalculate” service. I would like to have a button on a Planning dashboard run a data Management sequence that calls a DM step that runs Custom Calulate Business rule that is stored in a Workspace Assemblies. This is for a v9.0 environment.
Hi Everyone. I have the following CALCULATE expression, but it’s returning no results. The source values are not zero, so I’m not sure if the way I’m using the DIVIDE function is causing the issue, or if there is another problem Dim DBCInner As DataBuffer = api.Data.GetDataBufferUsingFormula("FilterMembers(A#RETBUYBACK:E#" & strEntTx3 & ":C#Local:O#Top:U2#INNER:UD3#COUNTRY_RPT + A#423100:E#" & strEntTx3 & ":C#Local:O#Top:U2#INNER:UD3#COUNTRY_RPT + A#411000:E#" & strEntTx3 & ":C#Local:O#Top:U2#INNER:UD3#COUNTRY_RPT)") api.Data.FormulaVariables.SetDataBufferVariable("DBCInner",DBCInner,False) Dim regionalRpt As DataBuffer = api.Data.GetDataBufferUsingFormula("FilterMembers(A#RETBUYBACK:E#" & strEntTx3 & ":C#Local:O#Top:U2#INNER:UD3#REGIONAL_RPT + A#423100:E#" & strEntTx3 & ":C#Local:O#Top:U2#INNER:UD3#REGIONAL_RPT + A#411000:E#" & strEntTx3 & ":C#Local:O#Top:U2#INNER:UD3#REGIONAL_RPT)") api.Data.FormulaVariables.SetDataBufferV
Hello All, Our initial setup had everything copying data files to Application/Batch/Harvest folder. There has been multiple years of files stored in this location making it unable to open. I am trying to create something to pull the files and if folders are created to delete the stored files. I am uable to open the path and the clean up business rule fails to run due to the size. I spoke with some developers at Nashville Splash and am reaching out on here as well.
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.