Define and Edit Text for IC members

CarlosAlvear
Contributor

Dear all,

I'd like to know how do you define a particular text for an IC member. I thought that once you define a text for an entity having a IsIC = True will transfer that information automatically to the same member in the IC dimension but it seems that it doesn't work that way. Given this, how would you set up the text for IC members?

Thank you. Best regards,

Carlos 

1 ACCEPTED SOLUTION

My bad, I got confused with something else.

I think this warrants a quick member list. Amend values of dimensionName and entityFilter as necessary:

' in a Finance BR
Case Is = FinanceFunctionType.MemberList
  If args.MemberListArgs.MemberListName.XFEqualsIgnoreCase("withText1") Then
	Dim dimensionName as String = "CorpEntities"
	Dim entityFilter as String = "E#Root.Base.Where(Text1 <> '')"
	Dim ICs As New List(Of Member)
	Dim entities As List(Of MemberInfo) = brapi.Finance.Members.GetMembersUsingFilter(si, _
			brapi.Finance.Dim.GetDimPk(si, dimensionName), _
			entityFilter, _
			True)
	For Each entityMInfo As MemberInfo In entities
		ICs.Add(brapi.Finance.Members.GetMember(si, dimtypeId.IC, entityMInfo.Member.Name))
	Next
	Return New MemberList(New MemberListHeader("withText1"), ICs)

JackLacava_0-1704888920167.png

 

View solution in original post

6 REPLIES 6

Steven
Contributor II

CarlosALVEAR,

The IC dimension does not have any member attributes.  You will need to get the Text Value from the IC Entity that is being referenced.

CarlosAlvear
Contributor

Hi Steven,

The original need is to use a MF for IC, for instance "I#ICEntities.Children.Where(Text2 Contains XXX)".

Thank you!

Should be doable by referencing entities. Not tested but this should work: I#ICEntities.List(E#YourRoot.Children.Where(Text2 Contains XXX))

CarlosAlvear
Contributor

Hi Jack, 

Thank you for your idea. I tried something simpler without success [I#ICEntities.List(E#YourRoot.Children)]. It's the first time I see that it's possible to select a member from another dimension. Should it work? 

Thank you. Best regards

My bad, I got confused with something else.

I think this warrants a quick member list. Amend values of dimensionName and entityFilter as necessary:

' in a Finance BR
Case Is = FinanceFunctionType.MemberList
  If args.MemberListArgs.MemberListName.XFEqualsIgnoreCase("withText1") Then
	Dim dimensionName as String = "CorpEntities"
	Dim entityFilter as String = "E#Root.Base.Where(Text1 <> '')"
	Dim ICs As New List(Of Member)
	Dim entities As List(Of MemberInfo) = brapi.Finance.Members.GetMembersUsingFilter(si, _
			brapi.Finance.Dim.GetDimPk(si, dimensionName), _
			entityFilter, _
			True)
	For Each entityMInfo As MemberInfo In entities
		ICs.Add(brapi.Finance.Members.GetMember(si, dimtypeId.IC, entityMInfo.Member.Name))
	Next
	Return New MemberList(New MemberListHeader("withText1"), ICs)

JackLacava_0-1704888920167.png

 

CarlosAlvear
Contributor

Hi Jack, 

Thank you for your reply. In a general case, that would be enough but I'm trying to apply it to a MF using "Insert Member Filter" + "Suppress Nodata Rows = True" so a member list would not work either.

I'd like to use the "I#ICEntities.Children.Where( ...) " condition for IC dimension.

Thank you