Filter IC Dimension by Entity Property
A common requirement for reporting is to be able to filter the IC dimension by some property that exists only on the original Entity members.
This can be achieved with a custom Member List defined in a Finance business Rule.
Select Case api.FunctionType
' MemberListHeaders support is optional but good practice
Case Is = FinanceFunctionType.MemberListHeaders
Dim mListHeaders As New List(Of MemberListHeader)
' add the name of your list:
mListHeaders.Add(New MemberListHeader("withText1"))
Return mListHeaders
' Here we do the real work
Case Is = FinanceFunctionType.MemberList
If args.MemberListArgs.MemberListName.XFEqualsIgnoreCase("withText1") Then
' this list of members will be populated later
Dim ICs As New List(Of Member)
' amend parameters as necessary here
Dim dimensionName as String = "CorpEntities"
Dim memberFilter as String = "E#Root.Base.Where(Text1 <> '')"
' filter the Entity dimension by some criteria
Dim entities As List(Of MemberInfo) = brapi.Finance.Members.GetMembersUsingFilter(si, _
brapi.Finance.Dim.GetDimPk(si, dimensionName), _
memberFilter, _
True)
' retrieve IC members corresponding to the selected Entity members
' and push them into output list
For Each entityMInfo As MemberInfo In entities
if entityMInfo.getEntityProperties().isIC then
ICs.Add(brapi.Finance.Members.GetMember(si, dimtypeId.IC, entityMInfo.Member.Name))
end if
Next
' wrap with the MemberList object and return
Return New MemberList(New MemberListHeader("withText1"), ICs)
This can then be referenced in CubeViews and elsewhere like this:
Updated 12 months ago
Version 5.0