We are under construction!

You may experience downtime, errors or visual oddities, but we anticipate all will be resolved by the end of the day.

Knowledge Base Article

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 11 months ago
Version 5.0