Forum Discussion
Rob
4 years agoNew Contributor
Clear data on Origin Forms
Does anyone have a piece of code to clear data on the origin Forms member for just a few accounts? The api.data.clearcalculateddata is not possible (data is not calculated) and api.data.setdatacell doesn't work. Thanks.
You can combine calculate with clearcalculateddate like this:
Dim script as string = pov api.data.calculate($"{script} = 0 * {script}") api.data.clearcalculateddata(script)The first row will make it calculated, the second row will delete it, because now it is calculated.
8 Replies
- ChristianW
OneStream Employee
You can combine calculate with clearcalculateddate like this:
Dim script as string = pov api.data.calculate($"{script} = 0 * {script}") api.data.clearcalculateddata(script)The first row will make it calculated, the second row will delete it, because now it is calculated.
- poswaldNew Contributor II
I've tried this, but I'm not following how to do this. I have several accounts where I only want to clear the Forms data.
I need the forms data cleared for all the accounts where Text 8 Startswith VarPercentofSales
This was the code I tried:
Dim script As String = "A#All:F#EndBal_Input:V#Periodic:O#Forms:U1#Local_Input:U2#None:U3#None:U4#None:U5#None:U6#None:U7#None:U8#None.Where(Text8 Startswith VarPercentofSales)"
api.data.calculate($"{script} = 0 * {script}")api.data.ClearCalculatedData("TRUE","TRUE","TRUE","TRUE","A#IncStmnt.Base.Where(Text8 Startswith VarPercentofSales)",,"O#Forms",,,,,,,,,)
- ChristianW
OneStream Employee
The script and the syntax is not correct, try this:
Dim script As String = "A#All" api.data.calculate($"{script} = 0 * {script}","A#IncStmnt.Base.Where(Text8 Startswith VarPercentofSales)",,"O#Forms") api.data.ClearCalculatedData(True,True,True,True,"A#IncStmnt.Base.Where(Text8 Startswith VarPercentofSales)",,"O#Forms")
- KrishnaValued Contributor
The below code will also work.
Dim Parent As Member = api.Members.GetMember(DimType.Account.Id,"IS") Dim ActMembers As List (Of Member) = api.members.GetBaseMembers( _ api.Pov.AccountDim.DimPk, Parent.MemberId, Nothing) If Not ActMembers Is Nothing Then For Each ActMember As Member In ActMembers If ((Not api.Entity.HasChildren()) ) Then api.Data.ClearCalculatedData("A#" & ActMember.Name,True,True,True,True) End If Next End If
- EricOsmanski
OneStream Employee
Can also use the below where amount is 0.0 and isNoData is True.
api.Data.SetDataCell(memberScript, amount, isNoData, isDurableCalculatedData)
- RobNew Contributor
Thanks Christian, tested this and works as expected.
Related Content
- 3 years ago
- 2 years ago
- 2 years ago