Planning Workflow: year dimension security?

In the workflow system within Planning we find the options to choose a Scenario and a Version at first and then choose a specific part of the Entity dimension to work on within the workflow system. We would somehow also like to lock down the Year dimension. The problem is that our financials people can now, when they are part of the workflow, change the data in all years within their part of the entity dimension, but we don't want them to be able to change current or previous budgets.
Of course, we could take the years out of the forms, but since we also have the actuals in the Planning database our financials people should be able to read all years (so they can also read the actuals in all years, and they are of course allowed to see previous budgets), but only write in specific years (on the budgets).
Is there a best practice on how to do this?

Hi,
What you can do is change the start year/period - end year/period in the scenario dimension administration.
Say you only wanted budget entry for FY09
You would go into the scenario dimension administation
Edit Budget set the Start Year to FY09 and end End year to FY09
On the forms the previous years will still be shown but they will be read only and they will only be able to input into FY09 budget.
You can change the other scenario members in just the same way.
Hope this helps.
Cheers
John
http://john-goodwin.blogspot.com/

Similar Messages

  • Security on Year dimension in Hyperion Planning.

    Need to enable security on Year dimension on Hyperion Planning for below requirement. I know that we cannot enable security on year dimenison in Hyperion Planning, but want know if there is any custom solution.
    Requirement:
    IT users to have write access to Scenario: FY12FCSTJUN for year FY12 for period JUN to DEC & FY13 for Period OCT to SEP. (Calender year starts at OCT of every year)
    Normall users they want to have read access to Scenario: FY12FCSTJUN for year FY12 for period JUN to DEC and write access to Scenario: FY12FCSTJUN for Year FY13 for Period OCT to DEC
    1)we can modify the start period, end period, start yr and End yr for FY12FCSTJUN Scenario dimension to make FY12 FY12FCSTJUN as read/write for Specific year, but it won't meet the requirement.
    2)I have already tried making modification to the Planning respository table ( changed the value for ENFORCE_SECURITY parameter to 1 for DIM_ID 38 for Year in the HSP_Dimension table)on one of VM environments,but it won't enable security on the Year dimension.
    3)We can create a Budget scenario to achieve above, but it involves too many changes accross all the webforms and B rules, so we want to see if there is any custom solution available.
    Any suggestion/workaround to resolve the issue?

    Oracle will be releasing a patch in dec 2012 to fix/enable the security on year dimension. this patch is applicable for 11.1.2.2 version.

  • Non standard Year member in Planning Years dimension

    We have a non standard (to Planning) member of the Years dimension called 'No Year'. In order to add it initially, I had to go to the back end of Planning (HSP_OBJECT and HSP_UNIQUE_NAMES tables) and modify the members there. This was in version 9. The order of the Years members was then FY95 through FY14, then came No Year, then FY15. This worked for our start and end years within Planning, as our start year was FY09 and our end year was No Year, which allowed us to Plan through FY14 and also entered non-year specific data to No Year on forms. It also allowed us to omit 'No Year' from our scripts using a range of years FY09:FY14 (using substitution variables). Now that the year has rolled over (and, incidentally, we've upgraded to version 11), and our Planning years are FY10 through FY15, I would like to move No Year to be after FY15. However, I don't seem to be able to do that by updating the underlying tables above. I make the changes to the two tables, but it is not reflected in Planning (they display in the same order), and if I try to edit either of the two members in Planning (No Year or FY15), it gives me an error saying the member already exists. Does anyone know how I can accomplish moving the No Year member? I need to do it not only this year, but to have a process my client can follow each year, moving that member in the outline to be directly after the last Planning year.
    Thanks,
    Sabrina

    If you want to go about hacking the tables and changing the order of 'No Year'.
    If you run the following SQL against your planning application
    select * from hsp_object where object_type = 38
    You will see the position column and will have values like 1000000 = First place, 1000010 = Second Place and so on.
    To alter the position then you need to note down the position value of 'No Year' and 'FY15'
    update hsp_object set position = '1000070'
    where object_type = 38 and object_name='No Year'
    update hsp_object set position = '1000080'
    where object_type = 38 and object_name='FY14'
    Restart planning. Now this is all done at your own risk and when you app goes boom don't blame me :)
    If 'No Year' was added in the correct way when you add year's it should always stay as the last position.
    Planning assigns object ids between set ranges, normal year values (FY..) are 50002 onwards
    No Year is out of that range e.g 50412
    When No Year is added correctly then planning will add a new to the normal range of values for year (last year value + 1) and then alters the position order
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Can we delete the member from year dimension in hyperion planning??

    Hi All,
    Unfortunatley when adding the dimension members it have to add 2 yreas but i click 22 so its added 22 years in the dimension.
    so i want to delete the extra members from the year dimension. is it possible in planning to delete year members
    please if possible let me know how it is possible???
    Cheers,
    kittu.

    It can be done by SQL but it is not supported, the safest option is just to restore from backup before the changes were made
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Shared Members in Dimensions - security question

    Within the dimension security, do shared members take the security based on their base member or on the parent member?
    For example, if we have a base member setup under "Homes" like this:
    Homes > examplehome
    and then a shared member for "examplehome" setup like this:
    Region1 > examplehome(shared)
    And the "Homes" and "Region1" folder have different security setup for iDescendants, will "examplehome(shared)" take the security from "Homes" or "Region1"?

    I've never investigated this but does it really matter? The data for examplehomes is only stored in one place. The share just gives you alternate aggregation paths. My guess is that once you set security for one all instances of the member share the security. After all, if you place examplehomes on a form with no parent, planning has no idea which parent to use.
    Dave

  • Planning at Year level

    We have one Hyperion Planning application where the Period dimension has months (12) rolling up to Quarter and Year Total and 'Year' dimension for year totals.
    There is a requirment to create an Annual Plan which would be at year level and not at Month level. We don't want to Load data at node level in Period dimension (Year Total) and also don't want to load data at any one month e.g December.
    Is there a way we can create Annual or Year level plan in this structure or can we add another member in Period dimension to achieve this or any other workaround if you have faced similar requirement ?
    Thanks

    Do you have a BegBalance member in your Period dimension? If not, you could always create a member outside of the YearTotal hierarchy to act as its analogue.
    If so, you could load data to that member, and then use a calc script/HBR to spread or load that value to the month(s) under YearTotal.
    I'm guessing that you have Actual data at a month level and would thus likely want to compare monthly Actual data with monthly Plan data.
    Regards,
    Cameron Lackpour

  • Sum of All Years in Year Dimension

    I am trying to get the sum for an account of all years in the Year dimension. The cube is from a EPMA Planning 11.1.1.3 app. There are no Aggregation properties for the individual year members in the Year dimension. Any ideas on how to get the sum of all years?

    Hi kskinner,
    You can use @SUMRANGE function to get the summation of all the values of the specified member across the specified range.
    You can refer the below link for the syntax and example of SUMRANGE function.
    http://docs.oracle.com/cd/E10530_01/doc/epm.931/html_esb_techref/funcs/sumrange.htm
    NOTE - @SUMRANGE function does not accept a cross-dimensional parameter as a member name.
    Hope this helps.
    Greetings,
    SST.....

  • Create a Total over Year Dimension

    Does anybody have an idea on how to create a total over the Year dimension in Hyperion Planning (11.1.2 - Still using the Classic App since EPMA components seem tio not working properly on windows server 2008 R2 x64.)
    or has an idea which of the following would be a valid approch since I cannot define aggregation to the Year Node in Planning. No addition seems to be possible possible. Background is to get the total over 5 up to 15 years for a long term capital expenditure strategy.
    The following ideas came to mind:
    1.) FY09 + FY10+ FY11 as a dynamic calc on the last year in the system (as a formula)
    2.) Create a calculation rule that aggregates Year (but i cannot seem to be able to change the years to addition
    I would appreciate your input or any additional ideas.
    Best Regards
    Andre

    Hi,
    Yes, you can't create aggregation levels in Year dimension. But you have period dimension in which you can create dynamically calculated base time periods which you can use combined with No Year.
    So create a member in Period Dimension called Total of 3 Years. Place a member formula in it (IF(@ISMBR("No Year") FY09+FY10+FY11; ENDIF).
    You can use this period combined with No Year.
    Cheers,
    Alp

  • How can I customize the hyperion planning workflow?

    As the title, Is there any body can tell me about the customization of the hyperion planning workflow?
    Anything about this topic is welcome.
    Thanks
    Regards
    Xiaolei Wu
    Edited by: piero wu on Jan 8, 2009 6:31 AM

    Unfortunately, you cannot change the dimensions that make up the "Planning Unit". (Scenario, Version & Entity)
    This enhancement has been requested from Hyperion many times. I can only imagine that the contents of the Planning Unit are very central to the inner workings of Hyperion Planning, and very difficult to change.
    This limitation has forced me to make some undesirable design changes in the past. For example, I have had to combine dimensions like Entity and Department (into a single dimension called Entity) so that I could get department into the workflow. That's about the only solution for your issue. Unfortunately, it can really muck up your dimensions.
    I wish there was a better solution.
    - Jake

  • Dimension Security causing SSAS cube to slow down

    Hi,
    Experiencing problems with with the SSAS cube once its processed. Sometimes takes around 20 mins for the excel to load once you drag down any dimension.The cube has got no calc scripts/named sets etc.It has around 17 dimensions and one dimension(Employer)
    has got 46 attributes and another (member)17.Others are pretty small.The Employer dimension is used twice as role playing and the both employer/member have got dimension security applied to it.There are about 6 roles have been set up to restrict access to
    members in these dimensions.
    The SQL profiler shows multiple "Query Dimension" (mostly for Employer dimension)followed by a lot of "Calculate Non Empty Current"s  .Suspect that the delay is due to the dimension security expression evaluation.This only happens
    during first access of the cube within a role and it's relatively quick when I'm accessing via a role which doesn't have dimension security applied to it.Is there anyway to automatically trigger this process right after the cube has been processed so that
    it doesn't cause agony to the first user?

    You could build a cache warmer that connects with EffectiveUserName=YourDomain\user1 on the connection string and loop through each user. But what is your dimension security expression? Maybe we can speed it up.
    http://artisconsulting.com/Blogs/GregGalloway

  • Dimension security is not working if user have two roles in SSAS while connecting from Excel

    Hello Genius,
    I am facing the issue when user trying to connect the cube from excel if user have more than one role in ssas db.
    Role 1: Countryuser, I have implemented the dimension security with country
    dimension and  countrycode attribute.
    Role 2: CityUser,   I have implemented the dimension security with
    city dimension and  citycode attribute.
    If user is mapped to any one of above role dimension security is working perfectly according to the logic but mapped to both role, cube is exposing all the data in this case dimension security is not working.
    Please give me the solution to fix this issue or incase I am wrong kindly advice.
    Thanks
    Ganesh

    This is the expected behaviour as allowed sets in roles are unioned together.
    This is not a problem when your roles are restricting across a single attribute.
    eg.
    US_role = {[Geography].[Country].[USA]
    France_role = {[Geography].[Country].[France] }
    as someone in both roles ends up seeing {[Geography].[Country].[USA], [Geography].[Country].[France] }
    But when you have different attributes:
    NY_role = {[Geography].[City].[New York] }
    France_role = {[Geography].[Country].[France] }
    The first role is unrestricted on countries and the second is unrestriced on cities which is effectively:
    NY_role = {[Geography].[Country].AllMembers , [Geography].[City].[New York]  }
    France_role = {[Geography].[Country].[France], [Geography].[City].AllMembers }
    And when you union those two sets together you end up with:
    {[Geography].[Country].AllMembers , [Geography].[City].AllMembers }
    Which means that someone in both roles can see everything.
    So if you want to restrict someone to City = New York and Country = France you have to create a
    single role where both attributes are restricted. So if you have a lot of these combinations you will either have to create a lot of "combination" roles or look at dynamic security.
    The other thing that might work is make sure that you only give some users access to certain cities and others access to certain countries. It's the mixing of the two for a single person that causes the issues.
    http://darren.gosbell.com - please mark correct answers

  • Unable to see planning application and dimension menus under navigate tab

    Dears
    Unable to see planning application and dimension menus under navigate tab in EPM 11.1.1.1 workspace.
    Is there any configuration lost?
    All EPM service have already started.
    Thx
    Hector

    I also don't see the menu under "Consolidation" or "Planning" applications. I can naviaget to these applications from Navigate -> Application ->Consolidation or Planning and I see a box with up arrow and down arrow. If I keep my cursor between these two boxes, or the boundary, sometime I could start my applications in these two modules. I checked context.properties in \Hyperion\home\deployment\Tomcat5\workspace\webapps\workspace\conf folder.
    #Appended properties
    #Sat Jan 17 14:14:43 EST 2009
    Reports=Y
    HFM=Y
    HPSU=Y
    HP=Y
    HPS=Y
    Analyzer=Y
    BPMA=Y
    ChangeManagement=Y
    Subcontext.properties file is as follows:
    Analyzer=WebAnalysis
    Reports=hr
    HMB=metrics
    HPS=HPSWebReports
    HFM=hfm
    HP=HyperionPlanning
    BPMA=awb
    HFM-version=9.3.1
    HP-version=9.3.1
    HPS-version=9.3.1
    HMB-version=9.3.1
    BPMA-version=9.3.1
    # Parameters for all contexts
    #KeepAliveInterval=10
    #SessionTimeout=30
    #logon=bpm.logon
    #startup=cds.mode
    I also removed # character in the last four lines but I cannot see my aplications under "Consolidation" or "Planning.
    This is in Hyperion 9.3.1 environment all my websites are working. Workspace, Shared Services etc. I checked all my servies and they are working ok.
    http://lewisxphub:19000/workspace/index.jsp
    Any Ideas?
    Thanks
    Jay
    Edited by: Keerthi on Jan 29, 2009 4:31 AM

  • Query on Planning WorkFlow Process

    Hi Guys,
    I have a query on Planning WorkFlow Process i.e Two Business Units are willing to do their Budgeting & Forecasting Process in different periods.
    I would like to bring first one process for this and I would like to grant access for these two business units accordingly.
    Will it be any problem doing like this? If not please suggest me what is the best approach for this.
    Thanks,
    Suresh.

    Hello Suvin,
    You can try to check the value for your return sales order with T-code MB51
    Go to MB51  Enter Movement type 651 execute..
    Next screen Press Ctrl + Shift + F12 . It will take you to next screen..
    In this screen use Ctrl + F8, you will get field Column selection Popup..
    in that Choose " Amount in LC" & Sales Value.
    With this you will get the value. If the value is Zero then it means that the return stock from customer is non valuated.
    Note:
    T.Code MB52 : Display Warehouse stock of Material in Hand.
    App:lication
    You use this report to display the total stock of a material (quantity and value) at plant and storage location level. If transit stocks or stock transfer stocks exist at plant level, the system totals these stocks and displays them in the column In Stock Transfer in a stock line without a storage location.
    Note that in this report, the stock value of the warehouse stock is calculated using the following simplified formula:
    Stock value = quantity x value/valuated stock
    Therefore the stock value specified here only has informal characters and does not represent the actual stock value.
    Br,
    Tushar
    Edited by: Tushar Patankar on Jan 11, 2011 6:28 PM

  • IR - Prompting for Year Dimension and using CurrMth Substition Variable

    There's 2 questions.
    How do I set IR so it prompts up for choosing year dimension (essbase)? I've put year in Column Query and set it as a variable. However, when I put this on workspace it doesn't prompt the user for selection. How do I resolve this?
    The second question will base on the following thread:
    Substitution variables
    There is a substition variable in essbase for Currmth, Current Month. When I use this substition variable in IR, it has an error. Will update you what the case is. But is there any specific way I need to do inorder to use substitution variables in IR?

    Substitution Variable errors in IR, please see below cap screen:
    http://i144.photobucket.com/albums/r190/sycshk/SubstitutionVariable1.jpg
    http://i144.photobucket.com/albums/r190/sycshk/SubstitutionVariable2.jpg

  • Planning and Shared Services security disconnect.

    Hi,
    We have an intermittent problem. We are running 9.3.1 of Planning, Essbase, and Shared Services, etc. We have 6 planning applications on the same server. We use oracle as the database. The problem is at some point in time Planning stops getting updates made in Shared Services. When it happens you can go into the planning application, view the security on any object, and click "Add Access". The "Users and Groups" select box get's populated with "<None Available>". If you bounce the planning service and come back in the "Users and Groups" is populated as expected. It also dosen't affect all of the application or the same applications.
    We have an admin group that makes security updates. Mainly just adding users to native groups. When things are working the changes/additions flow through to the planning tables. (HSP_USERSINGROUP,HSP_OBJECT). We gave this group a query to run that shows the access a specific user has in planning. If a user is added to a group in SS they then run the query to make sure the access is granted in planning. When the query doesn't bring back the information they think should be there we know we have the issue and start scheduling an outage to bounce planning.
    Anyone else seen this behavior and is there another way to fix this besides bouncing planning?
    Thanks for any responses.
    Keith

    This show multiple apps but you could knock it down.
    select
    user_name,
    group_name,
    mart,
    object_name,
    object_type,
    access_mode,
    flag
    from (
    select
    U.Object_Name as User_Name,
    G.Object_Name as Group_Name,
    'PLAN_APP1' as mart,
    O.Object_Name as Object_Name,
    OT.Type_Name as Object_Type,
    Case AC.Access_Mode
    when 3 then 'ReadWrite'
    when 2 then 'Write'
    when 1 then 'Read'
    when -1 then 'None'
    else 'Unknown'
    end as access_mode,
    Case AC.Flags
    when 0 then 'Member'
    when 5 then 'Children'
    when 6 then 'IChildren'
    when 8 then 'Descendants'
    when 9 then 'IDescendants'
    else 'Unknown'
    end as flag
    from
    HYP_PLAN_APP1.HSP_ACCESS_CONTROL AC,
    HYP_PLAN_APP1.HSP_OBJECT U,
    HYP_PLAN_APP1.HSP_OBJECT O,
    HYP_PLAN_APP1.HSP_OBJECT_TYPE OT,
    HYP_PLAN_APP1.HSP_OBJECT G,
    HYP_PLAN_APP1.HSP_USERSINGROUP UG
    where
    AC.user_id = UG.group_id
    and UG.USER_ID = U.object_id
    and AC.object_id = O.object_id
    and UG.group_id = G.object_id
    and O.object_type = OT.object_type
    and O.object_type <> 7
    union
    select
    U.Object_Name as User_Name,
    '' as Group_Name,
    'PLAN_APP1' as mart,
    O.Object_Name as Object_Name,
    OT.Type_Name as Object_Type,
    Case AC.Access_Mode
    when 3 then 'ReadWrite'
    when 2 then 'Write'
    when 1 then 'Read'
    when -1 then 'None'
    else 'Unknown'
    end as access_mode,
    Case AC.Flags
    when 0 then 'Member'
    when 5 then 'Children'
    when 6 then 'IChildren'
    when 8 then 'Descendants'
    when 9 then 'IDescendants'
    else 'Unknown'
    end as flag
    from
    HYP_PLAN_APP1.HSP_ACCESS_CONTROL AC,
    HYP_PLAN_APP1.HSP_OBJECT U,
    HYP_PLAN_APP1.HSP_OBJECT O,
    HYP_PLAN_APP1.HSP_OBJECT_TYPE OT,
    HYP_PLAN_APP1.HSP_USERS UG
    where
    AC.user_id = UG.user_id
    and UG.USER_ID = U.object_id
    and AC.object_id = O.object_id
    and O.object_type = OT.object_type
    and O.object_type <> 7
    Union
    select
    U.Object_Name as User_Name,
    G.Object_Name as Group_Name,
    'PLAN_APP2' as mart,
    O.Object_Name as Object_Name,
    OT.Type_Name as Object_Type,
    Case AC.Access_Mode
    when 3 then 'ReadWrite'
    when 2 then 'Write'
    when 1 then 'Read'
    when -1 then 'None'
    else 'Unknown'
    end as access_mode,
    Case AC.Flags
    when 0 then 'Member'
    when 5 then 'Children'
    when 6 then 'IChildren'
    when 8 then 'Descendants'
    when 9 then 'IDescendants'
    else 'Unknown'
    end as flag
    from
    HYP_PLAN_APP2.HSP_ACCESS_CONTROL AC,
    HYP_PLAN_APP2.HSP_OBJECT U,
    HYP_PLAN_APP2.HSP_OBJECT O,
    HYP_PLAN_APP2.HSP_OBJECT_TYPE OT,
    HYP_PLAN_APP2.HSP_OBJECT G,
    HYP_PLAN_APP2.HSP_USERSINGROUP UG
    where
    AC.user_id = UG.group_id
    and UG.USER_ID = U.object_id
    and AC.object_id = O.object_id
    and UG.group_id = G.object_id
    and O.object_type = OT.object_type
    and O.object_type <> 7
    union
    select
    U.Object_Name as User_Name,
    '' as Group_Name,
    'PLAN_APP2' as mart,
    O.Object_Name as Object_Name,
    OT.Type_Name as Object_Type,
    Case AC.Access_Mode
    when 3 then 'ReadWrite'
    when 2 then 'Write'
    when 1 then 'Read'
    when -1 then 'None'
    else 'Unknown'
    end as access_mode,
    Case AC.Flags
    when 0 then 'Member'
    when 5 then 'Children'
    when 6 then 'IChildren'
    when 8 then 'Descendants'
    when 9 then 'IDescendants'
    else 'Unknown'
    end as flag
    from
    HYP_PLAN_APP2.HSP_ACCESS_CONTROL AC,
    HYP_PLAN_APP2.HSP_OBJECT U,
    HYP_PLAN_APP2.HSP_OBJECT O,
    HYP_PLAN_APP2.HSP_OBJECT_TYPE OT,
    HYP_PLAN_APP2.HSP_USERS UG
    where
    AC.user_id = UG.user_id
    and UG.USER_ID = U.object_id
    and AC.object_id = O.object_id
    and O.object_type = OT.object_type
    and O.object_type <> 7
    Union
    select
    U.Object_Name as User_Name,
    G.Object_Name as Group_Name,
    'PLAN_APP3' as mart,
    O.Object_Name as Object_Name,
    OT.Type_Name as Object_Type,
    Case AC.Access_Mode
    when 3 then 'ReadWrite'
    when 2 then 'Write'
    when 1 then 'Read'
    when -1 then 'None'
    else 'Unknown'
    end as access_mode,
    Case AC.Flags
    when 0 then 'Member'
    when 5 then 'Children'
    when 6 then 'IChildren'
    when 8 then 'Descendants'
    when 9 then 'IDescendants'
    else 'Unknown'
    end as flag
    from
    HYP_PLAN_APP3.HSP_ACCESS_CONTROL AC,
    HYP_PLAN_APP3.HSP_OBJECT U,
    HYP_PLAN_APP3.HSP_OBJECT O,
    HYP_PLAN_APP3.HSP_OBJECT_TYPE OT,
    HYP_PLAN_APP3.HSP_OBJECT G,
    HYP_PLAN_APP3.HSP_USERSINGROUP UG
    where
    AC.user_id = UG.group_id
    and UG.USER_ID = U.object_id
    and AC.object_id = O.object_id
    and UG.group_id = G.object_id
    and O.object_type = OT.object_type
    and O.object_type <> 7
    union
    select
    U.Object_Name as User_Name,
    '' as Group_Name,
    'PLAN_APP3' as mart,
    O.Object_Name as Object_Name,
    OT.Type_Name as Object_Type,
    Case AC.Access_Mode
    when 3 then 'ReadWrite'
    when 2 then 'Write'
    when 1 then 'Read'
    when -1 then 'None'
    else 'Unknown'
    end as access_mode,
    Case AC.Flags
    when 0 then 'Member'
    when 5 then 'Children'
    when 6 then 'IChildren'
    when 8 then 'Descendants'
    when 9 then 'IDescendants'
    else 'Unknown'
    end as flag
    from
    HYP_PLAN_APP3.HSP_ACCESS_CONTROL AC,
    HYP_PLAN_APP3.HSP_OBJECT U,
    HYP_PLAN_APP3.HSP_OBJECT O,
    HYP_PLAN_APP3.HSP_OBJECT_TYPE OT,
    HYP_PLAN_APP3.HSP_USERS UG
    where
    AC.user_id = UG.user_id
    and UG.USER_ID = U.object_id
    and AC.object_id = O.object_id
    and O.object_type = OT.object_type
    and O.object_type <> 7
    union
    select
    U.Object_Name as User_Name,
    G.Object_Name as Group_Name,
    'PLAN_APP4' as mart,
    O.Object_Name as Object_Name,
    OT.Type_Name as Object_Type,
    Case AC.Access_Mode
    when 3 then 'ReadWrite'
    when 2 then 'Write'
    when 1 then 'Read'
    when -1 then 'None'
    else 'Unknown'
    end as access_mode,
    Case AC.Flags
    when 0 then 'Member'
    when 5 then 'Children'
    when 6 then 'IChildren'
    when 8 then 'Descendants'
    when 9 then 'IDescendants'
    else 'Unknown'
    end as flag
    from
    HYP_PLAN_APP4.HSP_ACCESS_CONTROL AC,
    HYP_PLAN_APP4.HSP_OBJECT U,
    HYP_PLAN_APP4.HSP_OBJECT O,
    HYP_PLAN_APP4.HSP_OBJECT_TYPE OT,
    HYP_PLAN_APP4.HSP_OBJECT G,
    HYP_PLAN_APP4.HSP_USERSINGROUP UG
    where
    AC.user_id = UG.group_id
    and UG.USER_ID = U.object_id
    and AC.object_id = O.object_id
    and UG.group_id = G.object_id
    and O.object_type = OT.object_type
    and O.object_type <> 7
    union
    select
    U.Object_Name as User_Name,
    '' as Group_Name,
    'PLAN_APP4' as mart,
    O.Object_Name as Object_Name,
    OT.Type_Name as Object_Type,
    Case AC.Access_Mode
    when 3 then 'ReadWrite'
    when 2 then 'Write'
    when 1 then 'Read'
    when -1 then 'None'
    else 'Unknown'
    end as access_mode,
    Case AC.Flags
    when 0 then 'Member'
    when 5 then 'Children'
    when 6 then 'IChildren'
    when 8 then 'Descendants'
    when 9 then 'IDescendants'
    else 'Unknown'
    end as flag
    from
    HYP_PLAN_APP4.HSP_ACCESS_CONTROL AC,
    HYP_PLAN_APP4.HSP_OBJECT U,
    HYP_PLAN_APP4.HSP_OBJECT O,
    HYP_PLAN_APP4.HSP_OBJECT_TYPE OT,
    HYP_PLAN_APP4.HSP_USERS UG
    where
    AC.user_id = UG.user_id
    and UG.USER_ID = U.object_id
    and AC.object_id = O.object_id
    and O.object_type = OT.object_type
    and O.object_type <> 7
    Union
    select
    U.Object_Name as User_Name,
    G.Object_Name as Group_Name,
    'PLAN_APP5' as mart,
    O.Object_Name as Object_Name,
    OT.Type_Name as Object_Type,
    Case AC.Access_Mode
    when 3 then 'ReadWrite'
    when 2 then 'Write'
    when 1 then 'Read'
    when -1 then 'None'
    else 'Unknown'
    end as access_mode,
    Case AC.Flags
    when 0 then 'Member'
    when 5 then 'Children'
    when 6 then 'IChildren'
    when 8 then 'Descendants'
    when 9 then 'IDescendants'
    else 'Unknown'
    end as flag
    from
    HYP_PLAN_APP5.HSP_ACCESS_CONTROL AC,
    HYP_PLAN_APP5.HSP_OBJECT U,
    HYP_PLAN_APP5.HSP_OBJECT O,
    HYP_PLAN_APP5.HSP_OBJECT_TYPE OT,
    HYP_PLAN_APP5.HSP_OBJECT G,
    HYP_PLAN_APP5.HSP_USERSINGROUP UG
    where
    AC.user_id = UG.group_id
    and UG.USER_ID = U.object_id
    and AC.object_id = O.object_id
    and UG.group_id = G.object_id
    and O.object_type = OT.object_type
    and O.object_type <> 7
    union
    select
    U.Object_Name as User_Name,
    '' as Group_Name,
    'PLAN_APP5' as mart,
    O.Object_Name as Object_Name,
    OT.Type_Name as Object_Type,
    Case AC.Access_Mode
    when 3 then 'ReadWrite'
    when 2 then 'Write'
    when 1 then 'Read'
    when -1 then 'None'
    else 'Unknown'
    end as access_mode,
    Case AC.Flags
    when 0 then 'Member'
    when 5 then 'Children'
    when 6 then 'IChildren'
    when 8 then 'Descendants'
    when 9 then 'IDescendants'
    else 'Unknown'
    end as flag
    from
    HYP_PLAN_APP5.HSP_ACCESS_CONTROL AC,
    HYP_PLAN_APP5.HSP_OBJECT U,
    HYP_PLAN_APP5.HSP_OBJECT O,
    HYP_PLAN_APP5.HSP_OBJECT_TYPE OT,
    HYP_PLAN_APP5.HSP_USERS UG
    where
    AC.user_id = UG.user_id
    and UG.USER_ID = U.object_id
    and AC.object_id = O.object_id
    and O.object_type = OT.object_type
    and O.object_type <> 7
    Union
    select
    U.Object_Name as User_Name,
    G.Object_Name as Group_Name,
    'PLAN_APP6' as mart,
    O.Object_Name as Object_Name,
    OT.Type_Name as Object_Type,
    Case AC.Access_Mode
    when 3 then 'ReadWrite'
    when 2 then 'Write'
    when 1 then 'Read'
    when -1 then 'None'
    else 'Unknown'
    end as access_mode,
    Case AC.Flags
    when 0 then 'Member'
    when 5 then 'Children'
    when 6 then 'IChildren'
    when 8 then 'Descendants'
    when 9 then 'IDescendants'
    else 'Unknown'
    end as flag
    from
    HYP_PLAN_APP6.HSP_ACCESS_CONTROL AC,
    HYP_PLAN_APP6.HSP_OBJECT U,
    HYP_PLAN_APP6.HSP_OBJECT O,
    HYP_PLAN_APP6.HSP_OBJECT_TYPE OT,
    HYP_PLAN_APP6.HSP_OBJECT G,
    HYP_PLAN_APP6.HSP_USERSINGROUP UG
    where
    AC.user_id = UG.group_id
    and UG.USER_ID = U.object_id
    and AC.object_id = O.object_id
    and UG.group_id = G.object_id
    and O.object_type = OT.object_type
    and O.object_type <> 7
    union
    select
    U.Object_Name as User_Name,
    '' as Group_Name,
    'PLAN_APP6' as mart,
    O.Object_Name as Object_Name,
    OT.Type_Name as Object_Type,
    Case AC.Access_Mode
    when 3 then 'ReadWrite'
    when 2 then 'Write'
    when 1 then 'Read'
    when -1 then 'None'
    else 'Unknown'
    end as access_mode,
    Case AC.Flags
    when 0 then 'Member'
    when 5 then 'Children'
    when 6 then 'IChildren'
    when 8 then 'Descendants'
    when 9 then 'IDescendants'
    else 'Unknown'
    end as flag
    from
    HYP_PLAN_APP6.HSP_ACCESS_CONTROL AC,
    HYP_PLAN_APP6.HSP_OBJECT U,
    HYP_PLAN_APP6.HSP_OBJECT O,
    HYP_PLAN_APP6.HSP_OBJECT_TYPE OT,
    HYP_PLAN_APP6.HSP_USERS UG
    where
    AC.user_id = UG.user_id
    and UG.USER_ID = U.object_id
    and AC.object_id = O.object_id
    and O.object_type = OT.object_type
    and O.object_type <> 7
    Where user_name in ('Obama','McCain')

Maybe you are looking for