The OneStream Community is temporarily frozen until June 29th due to the ongoing maintenance. Please read the blog post here to learn more.
Forum Discussion
Guru_Prasad
9 months agoNew Contributor
Meta Data UD2 DIM
We have some group of base customers under different parents with text property, and we are planning to block input to those customers in all the input forms if we use dimension property Allow input 'false' then it will block input but after that update during close FPA team should do adjustments for those Customers. Can we do it with irrespective of that dimension property false update. Is there any option that without updating input forms (CUBE VIEWS) with customer (UD2) parameter or with the help of business rule can we override that dimension property Allow input 'True' by running DM Step for certain customers when we give them in DM JOB and revert again to false after inputs through DM step. Please suggest your solutions.
4 Replies
- T_Kress
OneStream Employee
The "In Use" setting on the dimensions turns the intersection pink so that it appears as an invalid intersection, for all users (even native administrators):
And the "Allow Input" setting on the dims turns the intersection green so it appears read only, again for all users including native administrators:
There are many ways to handle this requirement:
- Create a form where those customer UDs are not shown thus now allowing input (.Where(Text# = 'whatever') and only grant access to that WF profile and form to the users whom you do not want inputting
- Create another form where the FP&A folks can get to it and those intersections are shown
- Create a WF Channel on U2 and use the WF channel combined with the WF profiles and forms to control which WF profiles people can get into to enter data
- If the Customer U2 is a parameter in the form, create a security group that you attach to the "Display Member Group" on those UDs and allow some people display access and others not. The "Display Member Group" security property is a good way to "hide" members from pick lists and parameters
- Use a NoInputBR on the cube where if users are in a specific security group (or certain WF profile), you grant them access and if not you turn those intersections to read only
- Use Slice security on the cube(s) to grant all access or only read access to those intersections
You may be able to get the DM job and BR to flip the In Use or Allow Input from True to False, but this seems more complicated and less elegant than perhaps one of the above options.
Others may have ideas too, these are just some that came to mind for me. If this is just a requirement around forms data entry and the U2 is a pick list parameter on the forms, I would probably lean towards using the "DisplayMemberGroup" on those customers and create a security group that some people can see (FP&A) and others cannot see (people who should not input). That will remove those U3 customers as a choice in the parameter on the form.
- Guru_PrasadNew Contributor
Hi T_Kress, I assigned specific FPA channel to the customer for adjustments that can be done for only FPA but in 'Standard' workflow channel the customer is allowing input to the site user even though we assigned FPA channel to that customer. If 'No Input' BR is available, can you please give any example or reference for BR. it should show for all users and all workflows but should allow input for only FPA workflow channel.
we already have too many input forms so we cannot change customer filter in all the forms can we flip allow input for some datatypes it is very help full.
- T_Kress
OneStream Employee
There should be an example in the Golf Stream app. But if you do not have access, here is one example of this Finance BR.
Namespace OneStream.BusinessRule.Finance.BR_NoInput Public Class MainClass Public Function Main(ByVal si As SessionInfo, ByVal globals As BRGlobals, ByVal api As FinanceRulesApi, ByVal args As FinanceRulesArgs) As Object Try Select Case api.FunctionType Case Is = FinanceFunctionType.ConditionalInput Dim pov_account As String = api.Pov.Account.Name Dim pov_scenario As String = api.Pov.Scenario.Name Dim pov_consolidation As String = api.Pov.Cons.Name Dim pov_origin As String = api.Pov.Origin.Name Dim pov_entity As String = api.Pov.Entity.Name Dim pov_entity_Curr As String = api.Entity.GetLocalCurrency.Name Dim pov_u1 As String = api.Pov.UD1.Name Dim pov_u2 As String = api.Pov.UD2.Name Dim pov_u3 As String = api.Pov.UD3.Name Dim pov_u4 As String = api.Pov.UD4.Name Dim pov_u5 As String = api.Pov.UD5.Name Dim pov_u6 As String = api.Pov.UD6.Name Dim pov_u7 As String = api.Pov.UD7.Name Dim pov_u8 As String = api.Pov.UD8.Name Dim pov_ICP As String = api.Pov.IC.Name Dim pov_flow As String = api.Pov.Flow.Name Dim CurrTime As String = api.Pov.Time.Name Dim pov_year As String = TimeDimHelper.GetSubComponentsFromName(CurrTime).Year Dim pov_period_num As String = TimeDimHelper.GetSubComponentsFromName(CurrTime).Month If pov_u7="NotDefined" And pov_entity<>"Entity_Admin" And pov_account<>"PCON" And pov_account<>"POWN" Then Return ConditionalInputResultType.NoInput End If If (pov_scenario = "None" Or pov_entity = "None" Or pov_account = "None" Or pov_flow = "None" Or pov_u1 = "None" Or pov_u2 = "None" Or pov_u3 = "None" Or pov_u4 = "None" Or pov_u5 = "None" Or pov_u6 = "None" Or pov_u7 = "None" Or pov_u8 = "None") Return ConditionalInputResultType.NoInput End If Return ConditionalInputResultType.Default End Select Return Nothing Catch ex As Exception Throw ErrorHandler.LogWrite(si, New XFException(si, ex)) End Try End Function End Class End NamespaceIn this case they are testing the POV of the user to flip to ConditionalInputResultType.NoInput.
In your case, you would want to check that the user is in a specific security group and have that determine the NoInput BR.
You would then attach this BR to the cube(s).
Good luck!
Related Content
- 2 years ago
- 3 years ago
- 7 months ago