Session Variable in Physical Layer

Hi All,
I am trying to use session variable in Physical layer i mean in select statement like select region,revenue,year from ABC where siteid ='VALUEOF(NQ_SESSION."siteid")' but it throws a warning saying that
WARNINGS:
GLOBAL:
The repository variable, NQ_SESSION."siteid", has no value definition.
even though I gave value is zero for not exisiting site in init block but it is still throws same warning.
is there anything i am doing wrong.Please can you give ur valuable suggestions .
Thanks for ur replies!!!!!!!!1

Thanks for replying!!!!!!!
I checked it.There are no values in it even though i forced some dummy values(i.e it's everthing plain).I dont whether we can pass session variables values in Physical Layer or they can be only used in BMM Layer.
This is what i did
select 'siteid',site_id from xyz as a where upper(a.loginname)=upper(:user) union select 'siteid',0 from dual and then pass the values in physical layer
select e,r,t,,u,i from ABC where siteid ='VALUEOF(NQ_SESSION.siteid){Note:Its just example don't think about column names or tables names}
Please correct if i am doing anything wrong.
Thanks

Similar Messages

  • OBIEE | Using Dynamic Session Variable in Physical Layer

    Hi All,
    Any idea if we can use Dynamic Session Variables (I think they are also called Repository Variables) in our physical layer. I basically need to set the value of this variable from dashboard when a link is clicked, and then use this in my SELECT query at physical layer so that OBIEE does not pull all the data from the database tables.
    Regards
    Adeel Javed
    Edited by: user10642426 on Apr 6, 2009 2:03 AM

    Christian,
    Thanks for the quick response, ok we have actually moved to a different solution now, we are actually using Direct Database Request because one of our reports is supposed to be accessing direct transactional system i.e. for this report we are using OBIEE as a reporting tool. We are able to do that and even create links between different reports i.e. based on prompt in Report A filter Report B, but the scenario now is that we need to set a presentation variable from Report A when a navigation link gets clicked, because so far according to our knowledge direct SQL only allows presentation variables in its WHERE clause. So, any ideas how can we set a presentation variable when a navigation link is clicked. Thanks.
    Regards
    Adeel Javed
    Edited by: adeeljaved on Apr 6, 2009 11:43 PM

  • Creating filtered view on the physical layer ussing session variable USER

    Hi:
    I´m creating a view on the physical layer, the view needs to be created dynamically. So depending on the user (using the session variable USER) the view is created with the data a particular user is able to see.
    Fisrt I imported the table and changed it´s properties to be created through a "Select Statement" so i don´t needed to change the mapping on the bussiness model layer.
    The consistency check was OK but i´m not able to see data in answers, even using the Administrator user. Have anyone tried to do this? Here is my query.
    Thanks
    A Garcia
    Select * from D_ESTRUCTURA_RH2 where Region_ID
    IN
    select distinct a.REGION_ID from APP_INDPERSONAL_DM.D_ESTRUCTURA_RH2 a
    inner join (
    select distinct b.REGION_ID from APP_INDPERSONAL_DM.D_ESTRUCTURA_RH2 b
    where exists (select 1 from APP_INDPERSONAL_DM.Autorizacion a, usuarios c
    where a.app_id = 1
    and a.usuario_id = c.Usuario_Id
    and UPPER(c.Nombre_Usuario)=UPPER(':USER')
    and a.miembro_id = 'REGION_ID'
    and a.operador = '='
    and (b.REGION_ID = (case when valor = 'Todo' then 0 else valor end) or valor='Todo'))
    ) seguridad
    on
    a. REGION_ID = seguridad.REGION_ID
    )

    whay not use the same filter in the content tab of the logical table source?
    check the physical sql sent to databse using web-admin-manage sessions-view log and see if there is any unexpected behavior. also run the same query in db and see iff you get the results in databse itself.

  • How to pass a session variable to the bussines layer?

    Hello,
    I am doing a management application, and I need to store the login user that make insertions on any table, and the pages does not has backing beans.
    I had try to do that bindding the value field of a hidden attribute with the session variable, but it only change the value of the one. My second attempt was make an javascript function to do that on the page´s load, but it not looks like a good solution.
    Someone knows a way to sent the session value to the bussines layer? O a way to access from the Bussines layer to the session?
    Thanks
    Tony

    <p>
    Hi,
    </p>
    <p>
    Another solution (that I always use) is storing simultaneously the same data in HttpSession (in view layer) and session hashtable (in businness layer).
    </p>
    <p>
    You can put and get these data in any businness component using following methods:
    </p>
    <p>
    <font face="courier new,courier" size="2" color="#0000ff">
    private void setToJboSession(String key, Object val){</font>
    <font face="courier new,courier" size="2" color="#0000ff"> Hashtable userData = getDBTransaction().getSession().getUserData();
    if (userData == null) {
    userData = new Hashtable();
     userData.put(key, val);
    }</font>
    </p>
    <p>
     and
    </p>
    <p>
    <font face="courier new,courier" size="2" color="#0000ff">
    private Object getFromJboSession(String key){
     return getDBTransaction().getSession().getUserData().get(key);
    }</font>
    </p>
    <p>
    Kuba 
    </p>

  • How to create a physical table with a session variable.

    Hello,
    I have been trying to accomplish accessing data multiple databases from a single rpd and single connection pool. Is there a way to do it using session variables and OBIEE stored procedures or something. If someone has anything I could read up(unless I have already googled it), it would really help me out.
    Thanks.

    Where is there a need to access multiple DBs using the same connection pool?
    Just curious.

  • Direct database request and session variable value

    Hi,
    I have a problem by doing the following : idea is to have report with a list of all tables in user schema (which are not all in repository physical layer).
    By clicking on the name of any, should bring answer report which is done as direct database request doing basically select * from table_clicked (this will be basically the same table with sufix _err holding error rows).
    What I'm trying to do is having some kind report for error rows which can be in different tables in my database. So i had in mind to construct name of table i need , and pass it to database request through session variable. Am i doing right by doing direct database request like this :
    select * from 'VALUEOF(NQ_SESSION.TestVar2)'
    Is there another easyer way of doing this? I know this can be done by gourl by passing parameters but not sure how when i can't filter columns in direct database request (this can be different tables with different names of columns). I hope i didn't complicated this too much.
    Thnx in adwance

    Hi,
    I know this is a hack, and would be much more easy to create one table with dimension and measures, but this is intended to be used with code generator, which can produce different error tables with different column names in different time: It is not conviniet for somebody to add them to repository every 5 minutes. For example : i run my workflow and for first run I have errors in table1(let us say customer table with 30 columns) and if click on the table name in some answer report, i want to see all the bad records in the table. Tomorrow after the run, there are bad records in table1 and in table2 (lets say products) so I would have choice to pick table 1 or table2 and see al the bad records in any of these tables. This means that I can not now which tables will I have tomorrow, and as it is generic, I can manually add some tables in my model, and would have to add err table also as a possibility to have error rows?
    I saw post saying that you can pass parameter value by using go url functionality, by modifying configinstance file, but didn't suceed - http://gerardnico.com/wiki/dat/obiee/logical_sql/obiee_session_variable_go_url . Maybe some mistake or any better solution? I created session variable TestVar2, also modified instanceconfig.xml by adding this before </ServerInstance>
    <ParamList>
    <Param name="NQ_SESSION.TestVar2" source="url" nameInSource="SETVAR"/>
    </ParamList>
    and used go url in column formula : ''||"Physical Targets"."Physical Table"||''
    Can I use @1 for using first column value?
    Thnx

  • Passing Session variable of DATE data type to opaque view filter

    Hi Everyone,
    Can you guys please help me in passing session variable of DATE data type in RPD's physical layer 'opaque view' filter for Oracle database
    I tried following syntax, syntax wise I didn't got getting any error, but at the same time this opaque view is not fetching any records as well. my session variable is "END_DATE" and its value is 1998/12/31:00:00:00(as shown in RPD session windows, datatype is DATETIME)
    SELECT AMOUNT_SOLD, CHANNEL_ID, CUST_ID, PROD_ID, PROMO_ID, QUANTITY_SOLD, TIME_ID FROM SH.SALES
    WHERE TIME_ID =TO_DATE( 'VALUEOF(NQ_SESSION.END_DATE)','MM/DD/YYYY')
    SELECT AMOUNT_SOLD, CHANNEL_ID, CUST_ID, PROD_ID, PROMO_ID, QUANTITY_SOLD, TIME_ID FROM SH.SALES
    WHERE TIME_ID = TO_DATE( 'VALUEOF(NQ_SESSION."END_DATE")','MM/DD/YYYY')
    SELECT AMOUNT_SOLD, CHANNEL_ID, CUST_ID, PROD_ID, PROMO_ID, QUANTITY_SOLD, TIME_ID FROM SH.SALES
    WHERE TRUNC(TIME_ID) = TO_DATE( 'VALUEOF(NQ_SESSION."END_DATE")','MM/DD/YYYY')
    In past, I was able to pass a session variable into a opaque view filter using DATEOF function, but that was in DB2.
    I appreciate your time and help

    Finally, I got right format. here it is
    to_date(substr('valueof(NQ_SESSION.END_DATE)',1,10), 'yyyy-mm-dd')
    and here is the source from where I got this information
    Using OBIEE Session Variables in Select Tables in the Physical Layer

  • 'In Between' Date Prompt to set Session Variables???

    Hi
    Im very new to OBIEE and was hoping someone could help me. I have a date prompt using the 'in between' operator based on a date column.
    I am trying to set up a table in the Physical layer of the RPD using a stored proc (EXEC sp_name). The stored proc takes 2 input paramaters - a start data and an end date. These dates i would like to come from the in between prompt. I have set up the physical table structure to receive the results of the request.
    I looked at setting a session variable but it is asking me to insert sql to set the value and i dont want to hit the database outside of the stored proc. Also, even if i have session variables i cant see how to set them to the values in the prompt when using the 'In Between' operator.
    Im really very confused and i have been searching the net and the documentation for any clue.
    Any help would be appreciated
    Thanks

    In between operator doesn't support presentation variable..
    so break this into is into two prompts...and use equal to operator, then you can use them as request variables which will in turn override your session variables.
    in the report use operator between and use these variables in the filter..

  • Session variable type in repository

    Hi,
    I would like to define a session variable with type INT, where in the Admin tool that I can define it?
    ex: I first created a initialization block,( select a from b where id =:USER) a is a NUMBER type in the database, but it always returns an integer, when I create a session variable to contain the return of this init block, it gives me 4.0 instead of 4. I tried to use cast (a as INT) it still gives me 4.0. How can I define the session variable as INT type?
    Thanks,

    Hi Meli,
    one thing do you want to int type or real type value in the out put..
    As you said,
    it gives me 4.0 instead of 4. I so, you want decimal value then why did you cast it to int?
    And at last your question again
    How can I define the session variable as INT type?the example you given (with 4.1) and your question is not matching..
    please give clear picture what do you want?
    Anyhow, Check that particular column datatype in physical layer, is that int or some other?
    if you want decimal values like in database, physical column data type must be non int.
    change it.. and try

  • Pass the filter to my physical layer view..

    Hi,
    My requirement is i need to pass the filter to my view (Physical Layer view).
    Suppose if have a report with 4 or 5 prompts and 1 prompt am taking from that view (Physical Layer view).after running the report the query will be :
    select a,b from x,(view (Physical Layer view)) where join conditions and where
    prompt1='some value',prompt2='some value',prompt3='some value',prompt4='some value',prompt5='some value' (my prompts) (my prompts)
    But my requirement is
    select a,b from x,(view (Physical Layer view where prompt 5='some value')) where join conditions and where
    prompt1='some value',prompt2='some value',prompt3='some value',prompt4='some value' (my prompts)
    Hope you understand this..

    Hi,
    You want to pass the value from your dashboard Prompt to the physical layer view.
    This can be achieved by using Request variable that you have the option of creating at the prompt level.
    And then create session variable with the same name in RPD and now use that variable in the view created in the RPD physical layer in the where condition by calling the session variable.
    Let me know if you need more info or if it does not work out for you.
    Thanks.

  • Trunccolumn value while importing data to physical layer in RPD

    Hi All,
    While importing data from database, I want to trunc few column values so that I can put complex join, but I am not getting any link to do so.
    Can anyone suggest me that if on database, if two tables are linked by outer join, than how can I restore the same join state in Physical layer while maintaining star schema.
    Thanks in advance.

    Hi,
    I am using version 10.1.3.4.0
    This query is a select type physical table in a physical layer of the RPD
    select distinct project_no,project_name from cw_vertical_d where project_no = VALUEOF(NQ_SESSION."Project_Number")
    NQ_SESSION."Project_Number" is a session non system variable.I am trying to set this variable through a dashboard prompt ( as a request variable ).
    So when a user selects any value in the dashboard prompt then this session non system variable "Project_Number" should be set and then BI Server should fire a query with this value to pick the data from database.
    But this report is failing with "*[nQSError: 23006] The session variable, NQ_SESSION."Project_Number", has no value definition*" error.
    Don't know what is causing this?
    Regards,
    Vikas

  • Using Session Variable in the Column Level Security

    My Question -
    1. I created an initialization block with initialization string by calling a new session variable CTP_ID_LIST in the sql command, given appropriate database connections and when I exit out of Block, and chosen Row-wise initialization. I do not see a new session variable created under variables list. Why does this happen? Please help me on this.

    Hi,
    This happens when you select Row-wise Initialization.
    The row-wise initialization feature allows you to create session variables dynamically and set their values when a session begins. The names and values of the session variables reside in an external database that you access through a connection pool. The variables receive their values from the initialization string that you type in the Initialization Block dialog box.
    You can also use the row-wise initialization feature to initialize a variable with a list of values. You can then use the SQL IN operator to test for values in a specified list.
    Example: Using the table values in the previous example, you would type the following SQL statement for the initialization string:
    select 'LIST_OF_USERS', USERID
    from RW_SESSION_VARS
    where NAME='STATUS' and VALUE='FULL-TIME'
    This SQL statement populates the variable LIST_OF_USERS with a list, separated by colons, of the values JOHN and JANE; for example, JOHN:JANE. You can then use this variable in a filter, as shown in the following WHERE clause:
    where TABLE.USER_NAME = valueof(NQ_SESSION.LIST_OF_USERS)
    The variable LIST_OF_USERS contains a list of values, that is, one or more values. This logical WHERE clause expands into a physical IN clause, as shown in the following statement:
    where TABLE.USER_NAME in ('JOHN', 'JANE')
    Regards
    MuRam

  • Dates Format in Promts using Session Variables

    Hi Experts,
    I have an issue in controlling date format in prompts using session variable which I am using to set default value.
    By default date format is timestamp E.g '2010-12-19 12:00:00 AM'.
    As per requriement(s) I customized the date format in Reports as 19-Dec-2010 and I saved it as "System Wide Default for <Date Column Name> "
    So, I got desired format in Reports and Date Prompts.
    Now, I need to set a default value in Date Prompt. So, in RPD I created a Session Variable which returned me date in
    DD-MON-YYYY format. Using follwing SQL :
    SELECT REPLACE(CONVERT(VARCHAR(11), Getdate (), 106), ' ', '-') AS [DD-Mon-YYYY]
    But in reports takes this value as string and not Datetime. So i got an error message.
    A datetime value was expected (received "19-Dec-2010").
    If i do not use above SQL to CONVERT date then default date in prompt get displayed as timestamp format and give me desired results but Formatting looks very odd in prompt
    Is this a way so I can persist the [DD-Mon-YYYY] Formatting for default value which comes using variable and still run the report.
    Above problem also exist vice versa that is if i SET that session variable and pass the datetime value to server. But there i guess I can use ToDate or some Casting in RPD column expression to handle that. Tell me if i am right ?
    Thanks
    Saurabh

    That almost works. I had to adjust the syntax to the following...and then there are other issues doing this.
    select cust_no, name,'@{session.currentUser}' from customersMy write-back SQL is this:
    UPDATE customers SET NAME='@{c1}',LAST_EDITED_BY='@{c2}' WHERE CUST_NO=@{c0}But I don't want to display the cust_no column to the user. So I hide it in the UI. But if I do that I get the below error during write-back. Apparently sometimes when you hide a column on a direct query (numeric maybe?) the value doesn't transfer over to the write-back. If that's the case, this won't work for me. Hmm...
    Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43093] An error occurred while processing the EXECUTE PHYSICAL statement. [nQSError: 17001] Oracle Error code: 936, message: ORA-00936: missing expression at OCI call OCIStmtExecute: UPDATE customers SET NAME='Wyatt Donnely',LAST_EDITED_BY='Administrator' WHERE CUST_NO= . [nQSError: 17011] SQL statement execution failed. (HY000)
    SQL Issued: EXECUTE PHYSICAL CONNECTION POOL dev1 UPDATE customers SET NAME='Wyatt Donnely',LAST_EDITED_BY='Administrator' WHERE CUST_NO=

  • Using variable in physical table of type "select"

    Hello!
    I have to use query as physical table (in Administration tool - http://file.qip.ru/file/120930377/8713693/1_online.html):
    SELECT ID, CODE
    FROM TABLE (pkg.output('1','2')) This code works well. I need to insert instead of parameters '1' and '2' session variables, which will be set from Dashboard.
    How to put variable in this query? Variants like @{test} don't work.

    Hi
    I have a working example:
    select * from table(get_emps('VALUEOF(NQ_SESSION.USER)'))
    where
    CREATE OR REPLACE FUNCTION GET_EMPS(P_USER VARCHAR2:='SUPPLIER2')
    RETURN EMP_TYPE_LIST
    IS
    EMPS EMP_TYPE_LIST:=EMP_TYPE_LIST();
    R EMP_TYPE:=EMP_TYPE(NULL,NULL,NULL,NULL,NULL);
    i pls_integer:=0;
    CURSOR C_EMP(C_USER EMPLOYEES.USER_ID%TYPE) IS
    SELECT EMPLOYEE_ID,FIRST_NAME,LAST_NAME,SALARY ,USER_ID
    FROM EMPLOYEES WHERE upper(USER_ID)=upper(C_USER);
    BEGIN
    OPEN C_EMP(P_USER);
    LOOP
    FETCH C_EMP INTO R.EMPLOYEE_ID,R.FIRST_NAME,R.LAST_NAME,R.SALARY,R.USER_ID;
    EXIT WHEN C_EMP%NOTFOUND;
    i:=i+1; emps.extend; EMPS(i):=R;
    END LOOP;
    RETURN EMPS;
    END;
    and
    CREATE OR REPLACE TYPE EMP_TYPE AS OBJECT
    EMPLOYEE_ID NUMBER(6),
    FIRST_NAME VARCHAR2(20),
    LAST_NAME VARCHAR2(25),
    SALARY NUMBER(8,2),
    USER_ID VARCHAR2(30));
    and
    CREATE OR REPLACE TYPE EMP_TYPE_LIST AS TABLE OF EMP_TYPE;
    My employees table contains an extra column, called user_id, which has different values: 'Administrator','SUPPLIER2' and so on
    Best regards
    Laszlo

  • Version migration, shared ssl, session variables

    I'm migrating a shopping cart application from Cold Fusion
    4.5 to a new server running MX 7, and have run into a weird problem
    transferring session variables.
    Basically, there's two sites running on one physical server.
    The catalog, and then the shared ssl checkout pages. I'll call them
    catalog.com and sharedssl.com.
    Under 4.5, if I passed CFID & CFTOKEN in a link from
    identically named applications on catalog.com to sharedssl.com, the
    session and all its associated variables would transition
    seamlessly forward. Under MX, this is no longer happening. The
    *very first page* on sharedssl.com (the one that was directly
    passed CFID & CFTOKEN) will have access to those variables, but
    any subsequent pages on sharedssl.com will just throw errors.
    Looking at the debugging info, it's obvious that under MX a
    new CFID and CFTOKEN are being assigned when the user goes to
    sharedssl.com, regardless of the session id that was passed on; as
    soon as the "old" CFID & CFTOKEN aren't being explicitly
    mentioned, the "new" ones take over, resulting in a completely
    blank session.
    Has anyone else experienced anything similar? Is there a
    simple fix?
    I have some ideas on how to make this work, but I'd really
    like to keep this projection a "migration," and not, ie., a
    "rewrite." I guess I'm wondering whether there's a configuration
    checkbox I'm unaware of, or perhaps some arcane option in
    cfapplication that will restore the old behavior.
    Thanks for any help,
    Tim

    On which page is the following code?
    After login, user is validated and set values to those session.variables:
    ........user validation codes here......................
    <cfif mylogin NEQ true>
          <cflocation url="/login/login.cfm">
          <cfabort
    <cfelse>
          <cfset session.loggedin="Yes">
          <cfset session.username="#Trim(Form.username)#">
         <CFSET qUserRights = LoginObj.getUserRights('#Trim(Form.username)#')>
         <cfset session.userrights = qUserRights><!--- it's a query --->
        <CFSET qUserGroup = LoginObj.getUserGroup('#Trim(Form.username)#')>
            <cfloop query="qUserGroup">
               <cfset session.usergroup = user_group>
               <cfbreak>
            </cfloop>
        <!--- ****************** ???????????????????????????????????????????????????????????????????????????
        When I do cfdump in at this level, I can see that all of these session variables have been assigned to their values.
        But these session variables are not accessible from other pages. Other pages still show these session variable without its value.
        So, when I use these cfdumps in the index.cfm it is shown as they're not yet assigned with any values   ****************** --->
       <cfdump var="#session.loggedin#">
       <cfdump var="#session.username#">
       <cfdump var="#session.userright#">
       <cfdump var="#session.usergroup#">
    </cfif>

Maybe you are looking for

  • Pandora Randomly Changes Tracks

    Has anyone else had issues with Pandora changing tracks in the middle of the song?  Each track I start to play goes for about 20 seconds and then changes to a new song.  I have been through the settings and haven't found anything.  I thought maybe I

  • Screen stays on all the time power savings set up

    My imac's screen stays on all the time now once I upgraded snow leopard to 10.6.3 it has been doing this since I got the settings so that the screen turns off 3 minutes after inactivity but the screen never turns off now. the only time the screen tur

  • Why does the video stop and start using airplay on Mountain Lion?

    Why does the picture stop and start using airplay on Mountain Lion? I'm playing a film from a website and uising airplay to iTV. The sound is fine, but the picture stops and starts. Any ideas?

  • How to add arguments and switches to AUT

    Hi, Usually when I start my AUT from terminal, I will use command like for example $ ./appname.bin This is internally called from RCPTT when it calls AUT. But some times I have to pass some arguments and switches. How shall I do that? Take for exampl

  • How to set the preferred size of the textfield?

    Hi, For this code here, I want to make the following gui, but I can't: JTextField name = new JTextField(20); aaaa: [________] <---- this is the JTextField aaaaaa [________] bbbbbb [________] cccccc [________] I've tried many ways, such as: 1) use JPa