Forum Discussion

Sweez's avatar
Sweez
Contributor
3 months ago
Solved

Help Needed Moving a Scenario Member

I have a need to move a scenario from under a parent to under Root.  Take the example below.  I want to move "Forecast" under Root before "ForecastArchive".  To do that, my plan was to add a relation...
  • Sweez's avatar
    3 months ago

    More testing needed but the below seems to work to add the relationship (i.e. Copy vs Move):

    		Dim ForecastArchive_Mem As Member = BRApi.Finance.Members.GetMember(si, DimTypeId.Scenario, "ForecastArchive")
    		Dim scenarioDimPk As DimPk = BRApi.Finance.Dim.GetDimPk(si, "TopScenarioDim")
    		Dim ForecastArchive_ParMem As Member = BRApi.Finance.Members.GetParents(si, scenarioDimPk, ForecastArchive_Mem.MemberId, True).Item(0)
    
    		Dim Forecast_Mem As Member = BRApi.Finance.Members.GetMember(si, DimTypeId.Scenario, "Forecast")
    
    		Dim relPositionOpt As New RelationshipPositionOptions()
    		relPositionOpt.SiblingId = ForecastArchive_Mem.MemberId
    		relPositionOpt.MovementType = RelationshipMovementType.InsertBeforeSibling
    
    		Dim relPk As RelationshipPk = New RelationshipPk(DimTypeId.Scenario, ForecastArchive_ParMem.MemberId, Forecast_Mem.MemberId)
    		Dim relPkList As New List(Of RelationshipPk)
    		relPkList.Add(relPk)
    
    		Dim rel As New Relationship(relPk, scenarioDimPk.DimId, RelationshipMovementType.InsertBeforeSibling, 1)
    		Dim relInfo As New RelationshipInfo(rel, Nothing)
    		BRApi.Finance.MemberAdmin.SaveRelationshipInfo(si, relInfo, relPositionOpt)
    
    		BRApi.Finance.MemberAdmin.CopyOrMoveRelationships(si, scenarioDimPk, relPkList, ForecastArchive_ParMem.MemberId, False, relPositionOpt)