Alternate Entity hierarchies unbalanced
hello Team, good day; we have 4 alternate hierarchies for Entity dimension, the Application is for Consolidation, BS & IC, having the Balance sheet accounts balancing the amounts, the main hierarcy is balanced (means 0 asset, liability & equity), for all the rest aer unbalanced and the reazon could be the elimination accounts because these are not summing properly to 1st and 2nd level, (main parent and ancestor). the consolidation rule is custom and runing, maybe the conso properties are bad. Does anyone knows how to solve the unbalancing for all the Entity hierarchies? thakns in advance and Kind Regards6Views0likes0CommentsHow can I use a Business Rule to sort a Member List in alphabetical order?
Namespace OneStream.BusinessRule.Finance.XFR_MemberListAlphabetical Public Class MainClass '--------------------------------------------------------------------------------------------------- 'Reference Code: XFR_MemberListAlphabetical ' 'Description: Use a business rule to sort a member list in Alphabetical order ' 'Usage: This will put a member list of a dimension in Alphabetical order. ' Use the following on the cube view: ' E#Member.[Name of Business Rule, Name of List in Business Rule] ' e.g. E#Root.[XFR_MemberListAlphabetical, EntityAlphabetical] ' 'Created By: Robert Powers (put in XF Ref by John Von Allmen) ' 'Date Created: 5-24-2013 '--------------------------------------------------------------------------------------------------- Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, _ ByVal api As FinanceRulesApi, ByVal args As FinanceRulesArgs) As Object Try 'This will put a member list of a dimension in Alphabetical order. 'Use the following on the cube view: ' E#Member.[Name of Business Rule, Name of List in Business Rule] ' e.g. E#Root.[XFR_MemberListAlphabetical, EntityAlphabetical] Dim Memberlistname As String = "Ent_Sort" Dim MemberListstart As String = "E#[Total GolfStream].base" Select Case api.FunctionType Case Is = FinanceFunctionType.MemberList If args.MemberListArgs.MemberListName = Memberlistname Then Dim objMemberListHeader = New MemberListHeader( _ args.MemberListArgs.MemberListName) 'Read the members Dim objMemberInfos As List(Of MemberInfo) = api.Members.GetMembersUsingFilter( _ args.MemberListArgs.DimPk, MemberListstart, Nothing) 'Sort the members Dim objMembers As List(Of Member) = Nothing If Not objMemberInfos Is Nothing Then objMembers = (From memberInfo In objMemberInfos _ Order By memberInfo.Member.Name Ascending _ Select memberInfo.Member).ToList() End If 'Return Return New MemberList(objMemberListHeader, objMembers) End If End Select Return Nothing Catch ex As Exception Throw ErrorHandler.LogWrite(si, New XFException(si, ex)) End Try End Function End Class End Namespace19KViews6likes30CommentsSame Account Rolling to Different Parents Depending on Entity
Hi everyone, I’m currently building a OneStream application for a budgeting process and I’m facing a modeling challenge with account aggregation. The situation is the following: We have the same source account (for example 600000) across multiple entities. However, depending on the entity, the amount should roll up to different parent accounts in the reporting structure. Example: If Entity A loads Account 600000 = 1000, the amount should roll up to ParentA. If Entity B loads Account 600000 = 1000, the amount should roll up to ParentB. The key requirement is that I would like to keep only one account member (600000) in the Account dimension, without creating multiple target accounts such as 600000_A or 600000_B. Since the Account hierarchy in OneStream is static, I’m trying to understand what the best design approach would be to handle this type of entity-dependent aggregation. Has anyone implemented a similar requirement? What would be the recommended way to model this in OneStream while keeping a single account in the CoA? Any guidance would be greatly appreciated. Thanks in advance!71Views0likes1CommentDynamicCalc - Return FX of Current Parent
Good morning OneStream folks. I was looking for an example of how to dynamically pull the FX rate for an entity based on its current parent. We currently have a DynamicCalc account that assumes that all parents are USD and therefore the rate returned by the account is the USD translation rate. For example, the child is GBP and has a CAD parent, but the formula returns GBP-->USD. I was able to get a DynamicCalc formula that works, but I have to make some additions in my QuickView or CubeView to get it work completely. The account I created in this case is called ParentFX and the logic is below: In order to get the ParentFX account to return the correct value, I have to write my quickview logic as: A#ParentFX:C#Translated:Name(Parent FX). Which is fine, but I would also like to use that combo in a getdatacell calculation, and OneStream doesn't seem to like that. I'd like to be able to pull the A#ParentFX account with it using the Entity hierarchy as its guide for the parent FX instead of having to use the Cons hierarchy. Any ideas are appreciated.34Views0likes0CommentsGetDataBufferUsingFormula
Can someone check if there's any mistake in the below 2 lines. I am unable to execute the BR Dim sourceBuff As DataBuffer Dim srcED As String = args.CustomCalculateArgs.NameValuePairs("sourceEffectiveDate") Dim selectedScenario = args.CustomCalculateArgs.NameValuePairs("selectedScenario") Dim dmTime = api.Pov.Time.Name Dim account = args.CustomCalculateArgs.NameValuePairs("account") sourceBuff = api.Data.GetDataBufferUsingFormula($"FilterMembers(T#{dmTime}:S#{selectedScenario}:U4#Approved_Status:U6#Total_Audit:U7#{srcED}, [A#{account}.Base])")65Views0likes2CommentsDataBuffer Aligning of Dimensions
Hello, I have a question about aligning dimensions of a DataBuffer. I have an unallocated balance that is stored at a specific UD2 base member. This is shown in the log below: The goal is to multiply this amount (82.1097072) by a percentage at the same Account:UD1 combination, but the rate is stored at a U2#None, not at the same U2 as the unallocated percentage: The goal is for these data buffers to multiply and land at the specific U2# from the unallocated amount. (82.106*1.5219) However, since they are at different UD2s, they aren't going to multiply. Given that I need the specific UD2 detail, but the rates aren't stored at the specific UD2s, are there ways to manipulate the databuffer multiplication so this will occur at the detailed UD2? Dim Buffer As DataBuffer = RateBuffer * UnallocatedBuffer Thank you!68Views0likes1CommentUD8 Dynamic Calc - Retrieve Data From Another Application
Hello, I wanted to post this here since this came up at the Wave Conference in Vegas last week. Below is a snippet you can leverage to pull data from another application via a UD8 dynamic calc. This approach uses the CreateSessionInfoForAnotherApp BRApi to create a session in another application with the current user's credentials which ultimately enables you to execute any BRApi function (such as the GetDataCellUsingMemberScript BRApi) against another application in the same environment. This technique can be especially useful when looking to report on data that lives in two applications (in the same environment) in cube views and quick views. 'define the other application name you wish to connect to - this must be an app that lives within the same environment 'the user must also have access to the application to authenticate to it Dim otherAppName As String = "SomeOtherApp" 'create the session info to the other app and store it globally in memory Dim otherAppSeshInfo As SessionInfo = globals.GetObject("OtherAppSeshInfo") If (otherAppSeshInfo Is Nothing) Then otherAppSeshInfo = BRApi.Security.Authorization.CreateSessionInfoForAnotherApp(si, otherAppName, OpenAppResult.Success) globals.SetObject("OtherAppSeshInfo", otherAppSeshInfo) End If 'get the POV intersection from the CV and swap out the UD8 none member with the name of this UD8 reporting member Dim povMemberScript As String = api.Data.CreateMemberScriptBuilder(True, True, True, True).GetMemberScript().Replace("U8#GetDataFromAnotherApp", "U8#None") 'return the POV cell amount from the other application Return BRApi.Finance.Data.GetDataCellUsingMemberScript(otherAppSeshInfo, api.Pov.Cube.Name, povMemberScript).DataCellEx.DataCell.CellAmount Regards, Nick Kroppe Advanced Application Solutions OneStream Software3KViews6likes4CommentsAutomatic addition of FX Rate Types
Hi All, I am trying to automate addition of FX Rate Types on a button click with some logic. Inserting values into FxRateType and AuditFxRateType using the below code snippet ------------------------------------ Public Sub AddCurrentFXRate(ByVal si As SessionInfo, ByVal api As Object, ByVal sCurrentOpsName As String, ByVal dt As DataTable) Dim dbConnApp As DBConnInfo = BRAPi.Database.CreateApplicationDbConnInfo(si) Try Dim sSQL As New Text.StringBuilder Dim sFXRateTypeGuid As String = Guid.NewGuid.ToString sSQL.AppendLine("INSERT INTO FxRateType (UniqueID, Name, Description, AccessGroupUniqueID, MaintenanceGroupUniqueID, XmlData) VALUES ('" & sFXRateTypeGuid & "', '" & sCurrentOpsName & "', '" & sCurrentOpsName & "', '" & dt.Rows(0)("AccessGroupUniqueID").ToString & "', '" & dt.Rows(0)("MaintenanceGroupUniqueID").ToString & "', ' ')") sSQL.AppendLine("INSERT INTO AuditFxRateType (AuditGuid, AuditSeqId, AuditUser, AuditTime, AuditInsUpdateDel, UniqueID, Name, Description, AccessGroupUniqueID, MaintenanceGroupUniqueID, XmlData) VALUES ('" & Guid.NewGuid.ToString & "', '1', '" & BRApi.Security.Authorization.GetUser(si, si.AuthToken.UserName).User.Name & "', '" & DateTime.Now & "', '0', '" & sFXRateTypeGuid & "', '" & sCurrentOpsName & "', '" & sCurrentOpsName & "', '" & dt.Rows(0)("AccessGroupUniqueID").ToString & "', '" & dt.Rows(0)("MaintenanceGroupUniqueID").ToString & "', ' ')") Using dbConnApp dbConnApp.BeginTrans() BRAPi.Database.ExecuteSql(dbConnApp, sSQL.tostring, False) dbConnApp.CommitTrans() End Using Catch ex As Exception dbConnApp.Dispose() Throw ErrorHandler.LogWrite(si, New XFException(si, ex)) End Try End Sub ------------------------------------ The values get added into the tables fine, but the newly added rate type does not show in FX Rates interface even after refreshing the application. Would someone please guide what I am missing here?2.9KViews5likes6CommentsHow do I clean a scenario before copying data from another scenario? in the member formula.
Hi Everyone. I want to copy the information from one scenario to another. Currently, I’m using the member formula of the target scenario to transfer the data. However, I first apply a calculate to set the values to zero, followed by a clecarcalculateddata to properly remove the existing information. The issue is that after this step, the copy process doesn’t execute, and the scenario remains with zero values. My code is as follows: api.Data.calculate("S#FORECAST_" & monthNumber & "_AT_CY_BUDGET_RATE = 0*(S#FORECAST_" & monthNumber & "_AT_CY_BUDGET_RATE)",True) api.Data.ClearCalculatedData("S#FORECAST_" & monthNumber & "_AT_CY_BUDGET_RATE",True,True,True,True) Dim destinationInfo As ExpressionDestinationInfo = api.Data.GetExpressionDestinationInfo("S#FORECAST_" & monthNumber & "_AT_CY_BUDGET_RATE") '' Create new Databuffer for the results Dim resultDataBuffer As New DataBuffer 'Base Entity at Local If Not api.Entity.HasChildren And api.Cons.IsLocalCurrencyForEntity() Then BRapi.ErrorLog.LogMessage(si,"Validate 1") ' Get Databuffer from the account and scenario Dim sourceDataBuffer As DataBuffer = api.data.GetDataBufferUsingFormula("RemoveZeros(FilterMembers(S#[Forecast " & TimeName & "],[A#Root.Base]))", , False) ' Verificar si hay celdas con datos If sourceDataBuffer.DataBufferCells.Count > 0 Then BRapi.ErrorLog.LogMessage(si,"Validate 2") For Each sourceCell As DataBufferCell In sourceDataBuffer.DataBufferCells.Values If (Not sourceCell.CellStatus.IsNoData) And (sourceCell.CellAmount <> 0.0) Then BRapi.ErrorLog.LogMessage(si,"Validate 3") Dim resultCell As New DataBufferCell(sourceCell) resultCell.DataBufferCellPk.OriginId = DimConstants.Import resultDataBuffer.SetCell(si, resultCell, True) End If Next api.Data.SetDataBuffer(resultDataBuffer, destinationInfo,,,,,,,,,,,,,False) End If End If I would appreciate your help in understanding why the values are not being copied. The process is executed when I consolidate the information.418Views0likes6CommentsCustom Consolidation
Hi, I have a requirement from business that, want to restrict the roll-up in the entity dimension. for ex: i have Top entity, and all the members underneath are rolling up to Top, but i want to restrict one entity (ex: entity A) not to roll up for particular users which are part of group A. So, when Group A users retrieve the data at Top entity, he/she should see the total number except restricted entity(entity A) and all other can see the total numbers including entity A at Top. is there any way to restrict the roll-ups based on security. Thanks in Advance. any suggestions please, Appreciate your help. Thanks Satish P205Views0likes9Comments