The OneStream Community is temporarily frozen until June 29th due to the ongoing maintenance. Please read the blog post here to learn more.
Forum Discussion
ccage
3 years agoNew Contributor II
Updating Entity Relationship for Percent Ownership
Can any one provide me with a rule snippet for updating Entity Percent Ownership. I have tried a few things using the SaveRelationshipInfo but it is not working.
- 3 years ago
This should work, but please make sure you understand what it does before dropping it into production code. You might want to surround the SaveRelationshipInfo call with a try/catch to be on the safe side. As for anything posted on these forums, we make no guarantees in terms of support, you're on your own.
' coordinates Dim myScenarioID As Integer = brapi.Finance.Members.GetMemberId(si, DimType.Scenario.Id, "Actual") Dim myScenarioType As ScenarioType = BRApi.Finance.Scenario.GetScenarioType(si, myScenarioID) Dim myTimeID As Integer = BRApi.Finance.Time.GetIdFromName(si, "2020M3") Dim myEntityID As Integer = BRApi.Finance.Members.GetMemberId(si, DimType.Entity.Id, "Frankfurt") Dim myParentID As Integer = BRApi.Finance.Members.GetMemberId(si, DimType.Entity.Id, "Europe") ' fetch relationship. Dim relationship As Relationship = BRApi.Finance.members.ReadRelationshipNoCache(si, _ DimType.Entity.Id, myEntityID, myParentID) ' create new properties ' this should leave other properties alone and just merge with existing values, but check; worst case, repro other props before saving Dim newProperties As New VaryingMemberProperties( DimType.Entity.Id, myEntityID, myParentID ) newProperties.GetEntityRelationshipProperties().PercentOwnership.SetStoredValue( _ myScenarioType.Id, myTimeID, 40.0) ' we only save properties in this case brapi.Finance.MemberAdmin.SaveRelationshipInfo(si, _ False, relationship, _ True, newProperties, _ Nothing) - 3 years ago
Thanks Jack! I want to also thank Nick Kroppe who provided me with the following code as well.
'retrieve rel info for parent child relationship Dim myRelInfo As RelationshipInfo = BRApi.Finance.Members.GetRelationshipInfo(si, _ dimTypeId.Entity, "Houston Heights", "Houston") 'retrieve entity properties Dim entityRelationProps As EntityRelationshipVMProperties = myRelInfo.GetEntityRelationshipProperties() 'set the percent ownership property entityRelationProps.PercentOwnership.SetStoredValue( _ scenarioTypeId.Unknown, SharedConstants.Unknown, 90) 'retain the current relationship hierarchy position Dim relationPosOpts As New RelationshipPositionOptions() relationPosOpts.SiblingId = SharedConstants.Unknown relationPosOpts.MovementType = RelationshipMovementType.RetainCurrentPosition 'save the relationship info and update the ownership property BRApi.Finance.MemberAdmin.SaveRelationshipInfo(si, _ True, myRelInfo.Relationship, _ True, entityRelationProps.VMProperties, _ relationPosOpts)
JackLacava
OneStream Employee
3 years agoThis should work, but please make sure you understand what it does before dropping it into production code. You might want to surround the SaveRelationshipInfo call with a try/catch to be on the safe side. As for anything posted on these forums, we make no guarantees in terms of support, you're on your own.
' coordinates
Dim myScenarioID As Integer = brapi.Finance.Members.GetMemberId(si, DimType.Scenario.Id, "Actual")
Dim myScenarioType As ScenarioType = BRApi.Finance.Scenario.GetScenarioType(si, myScenarioID)
Dim myTimeID As Integer = BRApi.Finance.Time.GetIdFromName(si, "2020M3")
Dim myEntityID As Integer = BRApi.Finance.Members.GetMemberId(si, DimType.Entity.Id, "Frankfurt")
Dim myParentID As Integer = BRApi.Finance.Members.GetMemberId(si, DimType.Entity.Id, "Europe")
' fetch relationship.
Dim relationship As Relationship = BRApi.Finance.members.ReadRelationshipNoCache(si, _
DimType.Entity.Id, myEntityID, myParentID)
' create new properties
' this should leave other properties alone and just merge with existing values, but check; worst case, repro other props before saving
Dim newProperties As New VaryingMemberProperties( DimType.Entity.Id, myEntityID, myParentID )
newProperties.GetEntityRelationshipProperties().PercentOwnership.SetStoredValue( _
myScenarioType.Id, myTimeID, 40.0)
' we only save properties in this case
brapi.Finance.MemberAdmin.SaveRelationshipInfo(si, _
False, relationship, _
True, newProperties, _
Nothing)
Related Content
- 2 years ago