Populating WEBGROUPS (or GROUPS) session variable in OBIEE 10g

We have a user who wants to verify that group-based permissions to various reports he's creating work as expected.
Initially, he wanted a user account per group, but as we try to enforce LDAP-based authentication, we have a policy against so many "generic" (non-LDAP) logins. It would also mean 40+ logins to manage.
So we considered one user account and allow him to join/leave different catalog groups, however, despite what the Oracle doco says, this requires Presentation Server Admin rights, which we can't justify giving him.
So, I thought populating the WEBGROUPS using row-wise initialization and a database table might work. No luck so far.
Am I barking up the wrong tree?
Any other thoughts on how to achieve this?
Thanks,
John

Finally got population of the WEBGROUPS variable work (using row-wise initialization with caching turned off)...
but now I see that if I remove a group from my table, they are not "unassociated" with the web catalog group. The group still "sticks" there.
Thoughts?
-John

Similar Messages

  • Session variable in obiee 10g

    Hi i have requirement like this i would like to display the Ename, empno, Hiredate, leavedate,salary. Here i would like to pass the session variable for the salary column which returns multiple values and the report should change based on the date i am selecting from the prompt.
    EX: Let's say from the prompt if select hiredate this date should pass into the report and the session should change.
    I have created session intiallization block and for the target i have selected row wise.
    select 'var1', salary from emp where hiredate<='VALUEOF(NQ_SESSION.var1)' .
    But in the answers when i passed this 'var1' for the salary column it says no value for the 'var1'. please let me know how to pass session variable when we have selected the target as row-wise.
    Thank you,
    ch.

    Finally got population of the WEBGROUPS variable work (using row-wise initialization with caching turned off)...
    but now I see that if I remove a group from my table, they are not "unassociated" with the web catalog group. The group still "sticks" there.
    Thoughts?
    -John

  • Alternative for session variable in OBIEE Translation

    Hi all,
    I am working on translating OBIEE reports to various languages. I am using specific xmls for particular language which has entries for translated text.
    Now in few of the reports I have case statements/BINs defined in column formula. This 'column formula' content is not a part of xml and hence not getting translated.
    One of the solution that i found was use of language specific session variable defined in rpd. When user logins with specific language, corresponding translated text is provided by session variable. This approach was correct and is working fine.
    But the problem is in few of my reports there are about hundreds of such case statements and hence thousands of texts to be translated for each particular language. hence it is a cumbersome task to define session variable for each of these column formula. Plus I am not sure about the performance issue that will be there after defining thousands of such session variables.
    Is there any alternative available for use session variable in OBIEE translation? Please reply.

    Hi,
    Check if this helps-
    http://obiee10grevisited.blogspot.in/2012/05/changing-language-in-obiee-on-fly.html

  • What is purpose of session variables in obiee

    what is purpose of session variables in obiee and how to use it in obiee

    whenever a user logs in, a session variable is initialized for that particular user.
    The session variable can hold values such as Username, loglevel.
    For example, if you have 10 obiee users and u want to set different loglevels depending on their roles, you can create system session variable LOGLEVEL which will be initialized dianamically depending on the initialization block.
    Edited by: Vishal on Jul 5, 2011 10:30 PM

  • Constraints for presentation variable in obiee 10g

    Hello Guys,
    What are the constraints for presentation variable in obiee 10g?
    requirement: I am unable to find the variable option, when i selects CONTAINS operatior, during creating the prompt.

    Hi,
    In 10g, a dashboard prompt can only set presentation variables when you use the "is equal to/is in" operator. Also, it is not available in case of MultiSelect prompt.
    Refer to the below thread for some alternate solutions:
    visualize prompt values into report Answer?
    Thanks

  • :USER and :GROUP session variables

    Hi,
    Please let me know the purpose of :USER and :GROUP variables. I have gone thru obiee docs but not understand clearly about these session variables.
    regards
    CK

    If you have to display a welcome message in a dashboard page with the user name, you can refer the USER session variable in the request. It will automatically get substituted with the log on name of the user
    Also you can use these variables in Authentication, authorization and data filters.
    Regards,
    Dpka

  • Use of a Session Variable in another session variable in OBIEE

    Hi,
    I want to use a session variable say A to calculate value of another session variable B. I am using valueof(NQ_SESSION.A) in the initialization block of variable B. But the result is coming blank. I know that the value exists. I have also set the precedence for B to run variable A first.
    Am I missing something here?

    vkos, it works fine for me as my first variable it's initialized when a user logins so the second variable can use its value. What you are trying to do it's not possible. It's not clear if the OP is trying to do the same thing but I will agree that if it is trying to initiliaze a session variable at runtime this is not going to work. You will either have to use presentation variables or update the session variable via GO URL or via Advanced settings in Answers. See the following posts:
    http://oraclebizint.wordpress.com/2008/02/28/oracle-bi-ee-101332-updating-session-variables-through-go-url/
    http://oraclebizint.wordpress.com/2008/02/25/oracle-bi-ee-101332-updating-session-variables-from-dashboards-using-presentation-variables/

  • Using row-wise multi-value GROUP system session variable in report filter

    The title says it all except I am using 10g OBIEE.
    What I want to do is filter on the dynamic system session variable GROUP created in a row-wise initialization block.
    The GROUP vriable is being set up correctly and it shows the user dynamically put into the correct groups in Answers.
    (Using the admin tool and looking at the user session, only the initial authentication block variables show up.)
    But if I want to filter using the value of GROUP it doesn't work.
    The obvious way is to choose the filter icon, then choose Add -> Variable -> Session, enter GROUP, and then display results.
    It comes back with no rows.
    Any idea how to do this? I've tried lots of things but none of them work either producing no rows or an error.
    This is the kind of Answers SQL this report is resulting in, which makes sense to me, but produces no rows.
    SELECT "Package Virtual Group (Dim)"."Package Virtual Group" saw_0, "Contact (Fact)"."Contacts All Count" saw_1 FROM "Case/Transaction/ABC" WHERE "Package Virtual Group (Dim)"."Package Virtual Group" = VALUEOF(NQ_SESSION."GROUP") ORDER BY saw_0

    866038 wrote:
    Errors come from trying things that don't work.
    For example, instead of =, using IN VALUEOF(NQ_SESSION.GROUP) or @{session.GROUP} or lots of other things.
    The question is this:
    how can I filter a column in Answers using the GROUP session variable which had been initialized in a row-wise initialization block?
    I can find no way to do it. Mostly it returns no rows.Hi,
    we had a similar requirement, where we have an external name that has project number values. We used row wise initialization to capture all the projects that a user belongs to. Then, we applied the filters at the RPD level, instead of doing it at the report level. From you requirement I see that you are trying to filter the groups based on user login. When a user logs in, he will see the information about the groups that he only belongs to. Correct me if I am wrong here.
    Assuming I am right about your requirement, providing the filter that you need apply in RPD.
    On all the fact tables are joined to the Package Virtual Group dimension, apply the below filter.
    case when 1=1 then (Dim)"."Package Virtual Group" END = VALUEOF(NQ_SESSION."GROUP");
    The reason for use of case statement here is, it converts the logical sql to IN Clause, helping us acheive the exact query that we would want.
    Please Award points if this helps.
    Thanks,
    -Amith.

  • System session variable ':GROUP'

    Dear Friends,
    I am having an issue with retrieving a value for the reserved system session variable :GROUP IN OBIEE 11.1.1.5
    From what I’ve read in the other posts I should be able to use :GROUP variable after where clause, and if there is more than one group assigned to a user INSTR should take care of this case. However I can’t get this to work.
    I am using row-wise variable, here is the code
    select 'ORGANIZATIONS' , s.ORGANIZATION_ID
    from T_VZA_SECURITY s
    where
    INSTR(':GROUP', trim(s.group_id)) > 0
    --INSTR('MyGroup', trim(s.group_id)) > 0
    I also tried to replace ':GROUP' session variable with 'VALUEOF(NQ_SESSION.GROUP)'
    my security table
    create table T_VZA_SECURITY
    (GROUP_ID VARCHAR(20),
    ORGANIZATION_ID VARCHAR (20),
    OWNING_DEPARTMENT_ID VARCHAR (20),
    ASSIGNED_DEPARTMENT_ID VARCHAR (20)
    Thank you

    I can't test my statement, it comes back with the error if i specify system session variable. If i replace a group variable with the string it works.
    I don't see how i can set the execution order - i only have one init block with row-wise initialization enabled. Basically followed
    http://www.rittmanmead.com/2012/03/obiee-11g-security-week-row-level-security/
    guide, and it does work for :USER but doesn't for :GROUP.
    Thank you for spending time to look at the issue!

  • Load more than one user groups to system session variable GROUP from table

    hi, I found that the value of the system session variable GROUP can be assigned by setting a sql in initialization blocks.
    however, if there are some users with more than one user group.
    can this be done by table driven (using sql in initialization blocks) ?
    thanks !!

    Referencing GROUP session variable in initialization blocks for different types of authentication
    http://108obiee.blogspot.com/2009/10/referencing-group-session-variable-in.html
    Users are assigned to multiple groups from external table with semicolons, see example two and three from the post.
    Regards
    Goran
    http://108obiee.blogspot.com

  • Session variable and initialization block issues

    We are using OBIEE 10.1.3.3 and utilizes built in security features. (No LDAP or other single sign on). The user or group names are not stored in any external table. I have a need to supplement Group info of the user to the usage tracking we implemented recently as the NQ_LOGIN_GROUP.RESP column contains username instead of group name. So I created a session variable and associated with a new initialization block and also had a junk default value set to the variable. In the initialization block, I wrote the following query and as a result it inserted correct values into the table when the TEST button was clicked from the initialization block form.
    insert into stra_login_data (username, groupname, login_time) values ('VALUEOF(NQ_SESSION.USER)', 'VALUEOF(NQ_SESSION.GROUP)', SYSDATE)
    My intention is to make this execute whenever any user logs on. The nqserver.log reports the following error and it doesn?t insert values into the table.
    [nQSError: 13011] Query for Initialization Block 'SET_USER_LOGIN_BLOCK' has failed.
    [nQSError: 23006] The session variable, NQ_SESSION.USER, has no value definition.
    [nQSError: 13011] Query for Initialization Block 'SET_USER_LOGIN_BLOCK' has failed.
    [nQSError: 23006] The session variable, NQ_SESSION.GROUP, has no value definition.
    When I changed the insert statement as below, this does get populated whenever someone logs in. But I need the values of GROUP associated with the user as defined in the repository.
    insert into stra_login_data (username, groupname, login_time) values ('TEST_USER', TEST_GROUP', SYSDATE)
    Could someone help me out! As I mentioned above, I need the GROUP info into the usage tracking. So, if there is another successful approach, could you please share?
    Thank you
    Amin

    Hi Amin,
    See [this thread|http://forums.oracle.com/forums/thread.jspa?messageID=3376946&#3376946]. You can't use the GROUP session variable in an Init Block unless it has been seeded from an Init Block first. There isn't an easy solution for what you want, but here are some options:
    1) Create a copy of your User => Groups assignments in your RPD in an table so you can use it in your Usage Tracking Subject Area. But this means you will have to replicate the changes in two places so it's not a good solution.
    2) As the GROUP session variable is populated when you login you could theoretically use it a Dashboard and pass it a parameter to write the value to the database. But as I am not sure how can you make fire only once when the user logins it sounds like a bad idea.
    3) Move your User => Groups assignments from your RPD to a DB table. Use OBIEE Write Back or something like Oracle APEX to maintain them.
    I think 3) is the best solution to be honest.

  • DISPLAYNAME session variable

    The documentation says that I can use the DISPLAYNAME session variable. However, in the server variable initialization block, it returns no value. In fact, it is not even recognized as a bind variable.
    For example,
    The query select ':USER' from dual returns
    Variable Value
    ==== ========
    mysessvar Administrator
    However, select ':DISPLAYNAME' from dual returns
    Variable Value
    ==== ========
    mysessvar :DISPLAYNAME
    I have read other threads dealing with the GROUP session variable, so it seems like this should be possible. However, I cannot get it to work. I am using OBIEE version 10.3.3.2. Thanks.

    Sorry. Yes, usually the best thing to do is state your objective, rather than your method. I am using SSO, but I want to have the ability to filter records based on the user logging in. Here is one way I thought of doing this.
    What I need to do is filter records based on a particular ID. Let's say my report table looks like this:
    RID UID Amount
    === === =====
    1 1 10
    2 2 15
    3 1 20
    I also have a table mapping username to UID, let's call it USERS.
    UID Username
    == ========
    1 Joe
    2 Bob
    We have set up OBI to use SSO and cookies. We will authenticate the user and then redirect to OBI. However, in OBI, I only want to show the records related to the user logging in. So, if Joe logs in, I only want to show records with RID =1,3. If Bob logs in, I only want to show records with RID=2.
    Now, if I was to create 1 named user in OBI for each user in USERS, I could use an init block to query the USERS table, get the UID and set it to a session variable. I could then use this session variable to filter my records. However, even though we won't have that many users, I don't want to do it manually. I want to create one OBI user that has access to the report. To filter records, my thought was to set the DISPLAYNAME using a cookie and then use the DISPLAYNAME to retrieve the UID.
    To answer the question asked by Turribeach, OBI is only looking at users defined in the rpd. We are using SSO, but OBI is not using external authentication.
    To summarize, I am using SSO, but I want to have the ability to filter records based on the user logging in. I just want to know the best way of doing that. Thanks!

  • Can we use session variables in BI publisher's Data Model SQL Query?

    Hi Experts,
    We need to implement Data level security in BI Publisher 11g.
    In OBIEE we do so by using session variables, so just wanted to ask if we can use the same session variables in BI Publisher as well
    ie can we include the where clause in the Data Models SQL Query like
    Where ORG_ID = @{biServer.variables['NQ_SESSION.INV_ORG']}
    Let me know your views on this.
    PS: We are implementing EBS r12 security in BI Publisher.
    Thanks

    Read this -> OBIEE 11g: Error: "[nQSError: 23006] The session variable, NQ_SESSION.LAN_INT, has no value definition." when Creating a SQL Query using the session variable NQ_SESSION.LAN_INT in BI Publisher [ID 1511676.1]
    Follow the ER - BUG:13607750 - NEED TO BE ABLE TO SET A SESSION VARIABLE IN OBIEE AND USE IT IN BI PUBLISHER
    HTH,
    SVS

  • Javacard and session variables

    Hello,
    I'm trying to find a reasonable Javacard technique to handle "session variables" that must be kept between successive APDUs, but must be re-initialized on each card reset (and/or each time the application is selected); e.g. currently selected file, currently selected record, current session key, has the user PIN been verified...
    Such variables are best held in RAM, since changing permanent (EEPROM or Flash) variables is so slow (and in the long run limiting the operational life of the card).
    Examples in the Java Card Kit 2.2.2 (e.g. JavaPurseCrypto.java) manipulate session variables in the following way:
    1) The programmers group session variables of basic type (Short, Byte, Boolean) according to type, and map each such variable at an explicit index of a vector (one per basic type used as session variable).
    2) At install() time, each such vector, and each vector session variable, is explicitly allocated as a transient object, and this object is stored in a field of the application (in permanent memory), where it remains across resets.
    3) Each use of a session variable of basic type is explicitly translated by the programmer into using the appropriately numbered element of the appropriate vector.
    4) Vector session variables require no further syntactic juggling, but eat up an object descriptor worth of permanent data memory (EEPROM or Flash), and a function call + object affectation worth of applet-storage memory (EEPROM, Flash or ROM).
    The preparatory phase goes:
    public class MyApp extends Applet  {
    // transientShorts array indices
        final static byte       TN_IX = 0;
        final static byte       NEW_BALANCE_IX=(byte)TN_IX+1;
        final static byte      CURRENT_BALANCE_IX=(byte)NEW_BALANCE_IX+1;
        final static byte      AMOUNT_IX=(byte)CURRENT_BALANCE_IX+1;
        final static byte   TRANSACTION_TYPE_IX=(byte)AMOUNT_IX+1;
        final static byte     SELECTED_FILE_IX=(byte)TRANSACTION_TYPE_IX+1;
        final static byte   NUM_TRANSIENT_SHORTS=(byte)SELECTED_FILE_IX+1;
    // transientBools array indices
        final static byte       TRANSACTION_INITIALIZED=0;
        final static byte       UPDATE_INITIALIZED=(byte)TRANSACTION_INITIALIZED+1;
        final static byte   NUM_TRANSIENT_BOOLS=(byte)UPDATE_INITIALIZED+1;
    // remanent variables holding reference for transient variables
        private short[]     transientShorts;
        private boolean[]   transientBools;
        private byte[]      CAD_ID_array;
        private byte[]      byteArray8;  // Signature work array
    // install method
        public static void install( byte[] bArray, short bOffset, byte bLength ) {
             //Create transient objects.
            transientShorts = JCSystem.makeTransientShortArray( NUM_TRANSIENT_SHORTS,
                JCSystem.CLEAR_ON_DESELECT);
            transientBools = JCSystem.makeTransientBooleanArray( NUM_TRANSIENT_BOOLS,
                JCSystem.CLEAR_ON_DESELECT);
            CAD_ID_array = JCSystem.makeTransientByteArray( (short)4,
                JCSystem.CLEAR_ON_DESELECT);
            byteArray8 = JCSystem.makeTransientByteArray( (short)8,
                JCSystem.CLEAR_ON_DESELECT);
    (..)and when it's time for usage, things go:
        if (transientShorts[SELECTED_FILE_IX] == (short)0)
            transientShorts[SELECTED_FILE_IX] == fid;
        transientBools[UPDATE_INITIALIZED] =
            sig.verify(MAC_buffer, (short)0, (short)10,
                byteArray8, START, SIGNATURE_LENGTH);I find this
    a) Verbose and complex.
    b) Error-prone: there is nothing to prevent the accidental use of transientShorts[UPDATE_INITIALIZED].
    c) Wastefull of memory: each use of a basic-type state variable wastes some code; each vector state variable wastes an object-descriptor worth of permanent data memory, and code for its allocation.
    d) Slow at runtime: each use of a "session variable", especially of a basic type, goes thru method invocation(s) which end up painfully slow (at least on some cards), to the point that for repeated uses, one often attain a nice speedup by caching a session variable, and/or transientShorts and the like, into local variables.
    As an aside, I don't get if the true allocation of RAM occurs at install time (implying non-selected applications eat up RAM), or at application selection (implying hidden extra overhead).
    I dream of an equivalent for the C idiom "struct of state variables". Are these issues discussed, in a Sun manual, or elsewhere? Is there a better way?
    Other desperate questions: does a C compiler that output Javacard bytecode make sense/exists? Or a usable Javacard bytecode assembler?
    Francois Grieu

    Interesting post.
    I don't have a solution to your problem, but caching the session variables arrays in local variable arrays is a good start. This should be only done when the applet is in context, e.g. selected or accessed through the shareable interface. This values should be written back to EEPROM at e.g. deselect or some other important point of time. Do you run into problems if a tear happens? I don't think so since the session variables should be transactional, and a defined point will commit a transaction.
    Analyzing the bytecode is a good idea. I know of a view in JCOP Tools (Eclipse plugin) where you can analyze the bytecode and optimize it to your needs.

  • Session variable

    I created a period status session variable which i want to use as a filter in answers. This variable takes note of the last closed period (month - YYYYMDD) when the accounting team closes it in their books. I currently have open periods taking the values of the last closed period and so the client wants these open periods to be removed from the report until the period in closed with accounting hence the use of a filter on the period (month) column. I used this filter eg Time."Fiscal Period" <=  VALUEOF(NQ_SESSION."CURR_PER_OPEN") but it is producing this message:
    The specified criteria didn't result in any data. This is often caused by applying filters that are too restrictive or that contain incorrect values. Please check your Request Filters and try again. The filters currently being applied are shown below.

    Hi,
    Try it like this..
    Set the default using logical SQL. Select <presentation table>.<presentation
    column> from <subject area> where
    <presentation table>.<presentationation column> =
    valueof(NQ_SESSION.<session variable>)
    http://gerardnico.com/wiki/dat/obiee/set_request_variable_dashboard_prompt
    http://sureshotstrategies.blogspot.com/2008/07/about-session-variables-in-obiee.html
    Thanks
    Deva

Maybe you are looking for

  • ISO 639 language code

    According to the http://help.adobe.com/en_US/Acrobat/9.0/Professional/WS58a04a822e3e50102bd615109794195ff-7 cee.w.html page, an ISO 639 code should be used for a language not listed in the drop-down list. Should that be a two-letter code (ISO 639-1)

  • Iphoto wont recognize memory card to load pictures

    all of a sudden iphoto wont recognize the memory card to import pictures. when you put card in reader iphoto launches but you dont see the card on the left hand side and it doesnt ask you to import the pictures. If you remove the card you get device

  • How to connect PM order to e-mail .

    HI Friends, I want to create the e-mail/ message whenever my PM order triggers from maintenence plan. client wants to shoot the e-mail/ mobile message 48 hurs  before due date. Plz help Regards Shashikant

  • Getting list of operations for a service Order

    I have to List the operation activities which are Planned and Confirmed in a service order. I'm unable to link the operation in service order for some ZREPORTING purpose as it links through structures only. Kindly suggest how we can obtain operation

  • Disc storage, error, please help.

    Hello, I have downloaded the new beta and wanted to perform and clean install, so I downloaded it, made and bootable usb. When I tried to erase the internal storage called "MacBook" it failed. Now I can't install OS X on it. (I installed it on extern