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!

Similar Messages

  • Displaying Session Variable on Dashboard & creating presentation variable

    Hi.
    I read a bit more on mysupport and it seems that :xdo_user_roles somehow displayes all kind of roles not the ones that the user acutally belongs to.
    Now I wonder if I can use NQ_SESSION.GROUP in the BI Publisher data model.
    (A)I figured that I can create a "list of values" in the data model and there I can select Oracle BI EE as a data source. maybe in the repository I can create a column that holds the nqsession_groups that I then use in the data model sql. assuming I can use a list of values in the sql.
    (B) or I pass it as a parameter to the report/data modell just like a normal dropdownlist parameter (presentation variable)
    Then I tried adding a text item on the dashboard with
    @{biServer.variables[NQ_SESSION.USER.displayName]}
    or
    Session Variable My Year : @{biServer.VARIABLES['v_USER_GROUPS']} *
    BUT none of them actually display any variables. :/
    *this one I created in the repository and has the correct values                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    When I remove "authenticated-role" from the BIConsumer Role in EM and visit my dashboard again I can see that the user is ONLY in role "AuthenticatedUser" now I wonder why this is the only one, I created a custom role in EM and added the user to that one but it does not show :/

  • Get loggedin Session variables in Home Page

    I got a members directory where u login.
    1.How come they get killed when i refresh a page.
    2.How do i get the loggedin session variable the home page.
    so i know if current user is logged in.
    The Application.cfc of the members is
    <cfcomponent name="Application" displayname="Application
    Component for the Login Security Tutorial" >
    <cfset This.name = "NewLoveZoneAfrica">
    <cfset This.applicationTimeout =
    CreateTimeSpan(0,0,0,45)>
    <cfset This.sessionManagement = "true">
    <cfset This.sessionTimeout = CreateTimeSpan(0,0,0,30)>
    <cfset This.clientManagement = "false">
    <cfset This.loginstorage="session">
    <cffunction name="onApplicationStart"
    returntype="boolean" output="true">
    <!--- Set up Application variables. Locking the
    Application scope is not necessary in this method. --->
    application starting
    <cfset Application.configured = 1>
    <cfset Application.datetimeConfigured = TimeFormat(Now(),
    "hh:mm tt") & " " & DateFormat(Now(), "mm.dd.yyyy")>
    <cfset Application.currentSessions = 0>
    <!--- Begin Setting up request variables here. --->
    <cfscript>
    request.app = structNew();
    Application.dsn = "LoveZoneAfrica";
    Application.webRoot =
    "#getPageContext().getRequest().getContextPath()#/NewLoveZoneAfrica/";
    Application.machineRoot = "/NewLoveZoneAfrica/";
    Application.cfcRoot = "NewLoveZoneAfrica.com";
    Application.Domain = "NewLoveZoneAfrica.com";
    factory=CreateObject("java","coldfusion.server.ServiceFactory");
    sqlService = factory.getDataSourceService();
    dsn = duplicate(sqlService.datasources[Application.dsn]);
    if(dsn.driver eq "MSAccess" or dsn.driver eq "MSAccessJet"
    or dsn.driver eq "ODBCSocket")
    request.app.ucase = "ucase";
    request.app.isAccess = true;
    else
    request.app.ucase = "ucase";
    request.app.isAccess = false;
    </cfscript>
    <!--- End Setting up request variables here. --->
    <cfreturn true>
    </cffunction>
    <cffunction name="onRequestStart" returntype="boolean"
    output="true" >
    <cfargument name="requestname" required=true/>
    <cfif isDefined("form.j_username") and
    isDefined("form.j_password")>
    <!--- If either password or Username is empty go to
    login--->
    <cfif form.j_username is "" or form.j_password is "">
    <cfinclude
    template="#Application.webRoot#Login/Security/Login.cfm">
    <cfabort>
    </cfif>
    <!--- First Check to see wether there is need to log out
    user--->
    <cfscript>
    // create the Security object
    Security =
    createObject("component","#Application.cfcRoot#.security");
    // store authenticate method of security object as roles
    variable.
    LogQry=Security.authenticate(form.j_username,form.j_password);
    </cfscript>
    <cfif LogQry.recordcount> <!--- User has
    Successfully logged in #GetValidUser# --->
    <cfloginuser name="#form.j_username#"
    password="#form.j_password#" roles="#valuelist(LogQry.Role)#">
    <!--- Update the LastLogin timestamp. --->
    <cfscript>Update_LastLogin=Security.LastLogin(form.j_username);
    </cfscript>
    <cfset request.User.LoggedIn = "1">
    <cfset request.User.Username = form.j_username>
    <cfset request.User.LastLogin = LogQry.LastLogin_Date
    >
    <cfelse>
    <!---Destroy request --->
    <cflock scope="SESSION" throwontimeout="Yes" timeout="7"
    type="EXCLUSIVE">
    <cfset clearStruct = StructDelete(request, "User")>
    </cflock>
    <!---Destroy request --->
    <cflock scope="SESSION" throwontimeout="Yes" timeout="7"
    type="EXCLUSIVE">
    <cfset clearStruct = StructDelete(SESSION, "User")>
    </cflock>
    </cfif>
    <cfif NOT isDefined("request.User.LoggedIn")>
    <cfset request.loginMessage ="Your Login Username or
    Password is Invalid ">
    <cfinclude
    template="#Application.webRoot#Login/Security/Login.cfm">
    <cfabort>
    <cfelse>
    <!--- If the login procedure is passed duplicate the
    request structure into the Session scope. --->
    <cflock scope="SESSION" throwontimeout="Yes"
    timeout="107" type="EXCLUSIVE">
    <cfset Session.User = Duplicate(request.User)>
    </cflock>
    <cflock name="lck_currentSessions" throwontimeout="Yes"
    timeout="107" type="EXCLUSIVE">
    <!---THIS has BE CHANgED : bEGIN- original COPY IS @ THE
    FOOT --->
    <!--- Copy identifying session information into the
    Application scope. --->
    <cfif NOT isDefined("Application.sessionData")>
    <!--- Increment the number of current sessions. --->
    <cfset Application.currentSessions =
    Application.currentSessions + 1>
    <cfset Application.sessionData = ArrayNew(1)>
    <cfset Arraysize = 0>
    <cfset Application.sessionData[Arraysize+1] =
    form.j_username>
    <CFELSE>
    <!---check to see wether this "Username" appears in the
    Application.sessionData.
    If so, ignore. If no then append the name to the array so we
    have a unique list of usernames--->
    <cfset Arraysize = ArrayLen(Application.sessionData)>
    <cfset Application.temp = ArrayNew(1)>
    <cfif Arraysize>
    <cfloop index = "LoopCount" from = "1" to =
    "#Arraysize#">
    <cfset #ArrayAppend(Application.temp,
    Application.sessionData[LoopCount])#>
    </cfloop>
    <cfdump var="#Application.sessionData#" >
    <cfset Isloggedin =
    ListFind(ArrayToList(Application.temp), form.j_username)>
    <cfif Isloggedin is 0>
    <cfset Application.sessionData[Arraysize+1] =
    form.j_username>
    <!--- Increment the number of current sessions. --->
    <cfset Application.currentSessions =
    Application.currentSessions + 1>
    </cfif>
    <cfelse>
    <!--- Increment the number of current sessions since twas
    empty. --->
    <cfset Application.currentSessions =
    Application.currentSessions + 1>
    <cfset Application.sessionData[Arraysize+1] =
    form.j_username>
    </cfif>
    </cfif>
    </cflock>
    </cfif>
    <cfelse>
    <cfif not ListLast(CGI.SCRIPT_NAME, "/") EQ
    "logout.cfm">
    <!---Check wether the username appears on the list
    Application.currentSessions is 0 --->
    <cfif NOT isDefined("Session.User.LoggedIn") >
    <cfinclude
    template="#Application.webRoot#Login/Security/login.cfm">
    <cfabort>
    </cfif>
    </cfif>
    </cfif>
    <!--- Check to see if a user is logged in on *every* cfm
    page request. --->
    <cfif not ListLast(CGI.SCRIPT_NAME, "/") EQ
    "logout.cfm">
    <cflock scope="SESSION" throwontimeout="Yes" timeout="7"
    type="READONLY">
    <cfif NOT isDefined("Session.User.LoggedIn")>
    <cfinclude
    template="#Application.webRoot#Login/Security/login.cfm">
    <cfabort>
    </cfif>
    </cflock>
    </cfif>
    <cfreturn true>
    </cffunction>
    <cffunction name="onSessionEnd" returntype="void">
    <cfargument name="SessionScope" required="true">
    <cfargument name="ApplicationScope" required="true">
    <cfset request.loginMessage="Nimeingia onSessionEnd">
    <cflock name="lck_currentSessions" throwontimeout="Yes"
    timeout="7" type="EXCLUSIVE">
    <cfset sessionPosition =
    ListFind(ArrayToList(arguments.ApplicationScope.sessionData),
    arguments.SessionScope.sessionid)>
    <cfif sessionPosition neq 0>
    <cfset
    ArrayDeleteAt(arguments.ApplicationScope.sessionData,
    sessionPosition)>
    <cfset arguments.ApplicationScope.currentSessions =
    arguments.ApplicationScope.currentSessions - 1>
    </cfif>
    </cflock>
    </cffunction>
    <cffunction name="onSessionStart" returntype="void">
    <cfset request.loginMessage="Nimeingia onSessionEnd">
    </cffunction>
    <cffunction name="onRequestEnd" returntype="void">
    <!--- Write any code that needs to run when the page
    request ends. This replaces onRequestEnd.cfm --->
    </cffunction>
    </cfcomponent>

    Answered my own quests
    http://www.rewindlife.com/archives/000046.cfm

  • Purchased ColdFusion 10: Having problem with session variables

    My Dept. has just bought CF10 and I'm finally updating my existing web app to CF10 from CF8. My First Problem with CF10 is using session variables.
    When using the lower version of CF (since CF 4 to 8) I have never had any problem setting up session variables and getting or using these variables in other pages after a successful login but with CF 10 it seems setting session variables and using them in other pages are a major problems. I'm not sure where have I done wrong in the codes.
    First I'm setting the session in my Application.cfc This way:
    <cfcomponent displayname="Application" output="true">
      <cfset THIS.Name ="MyNewApp"/>
      <cfset THIS.ApplicationTimeout = CreateTimeSpan(0,0,20,0) />
      <cfset THIS.SessionManagement ="YES"/>
      <cfset THIS.SessionTimeout = CreateTimeSpan( 0, 0, 20, 0 ) />
      <cfset THIS.SetClientCookies = false />
    <cffunction name="OnApplicationStart" access="public" returntype="boolean" output="false">
    <cfset application.Main_DSN = "TESTDB">
    <cfreturn true />
    </cffunction>
    <cffunction name="onApplicationEnd" output="false">
          <cfargument name="applicationScope" required="true">
        </cffunction>
    <cffunction name="OnSessionStart" access="public" returntype="void" output="false" hint="Fires when user session initializes.">
    <cfset session.loggedin = "NO">
    <cfset session.username = "">
    <cfset session.userrights = "">
    <cfset session.usergroup = "">
    </cffunction>
    </cfcomponent>
    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>
    In index.cfm, Before Login I got:
    session.loggedin = NO
    session.username = ["empty string"]
    session.userrights = ["empty string"]
    session.usergroup = ["empty string"]
    After a successful Login:
    session.loggedin = NO
    session.username = ["empty string"]
    session.userrights = ["empty string"]
    session.usergroup = ["empty string"]
    Have I done something wrong? These codes work on CF8. Please help.
    I need to mentioned:
    CF10 is in Linux and my web app is under https not http. But these session variables should be shared bentween http and https because some older application are still in http.

    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>

  • Internal LDAP Session Variable Population

    All,
    I can find plenty of documentation on how to populate a session varible from an external LDAP server. How do you populate a session variable from the internal LDAP server? I can't find documentation on this anywhere.
    Thanks in Advance,
    Josh

    Turribeach,
    In my .RPD I am trying to populate some of the system session variables, such as 'USER', 'DISPLAYNAME', 'GROUP', etc. from the out of the box, internal to Weblogic, DefaultAuthenticator, LDAP. I have found numerous blogs on how to connect to an external LDAP for authentication, at which point one can populate the system session variables from the external LDAP in an session variable initialization block. I can't find any documentation/blogs on how to use the internal LDAP to populate such system session variables. Any help will be greatly appreciated.
    I did find the system function 'user()' returns the user currently logged in, so that's a bit of a temporary workaround for the 'USER' system session variable.
    Thanks,
    Josh

  • Using HttpHeader to set value for session variables

    Hi,
    We want to set values for 2 session variables (USER and ROLEID) using HttpHeader in obiee 11g. Has anyone tried this? How can we achieve this?
    I found the below note on the forum for setting value for the USER session variable. how can we set the ROLEID session variable also? is it possible to set values for 2 variables?
    for setting the USER session variable,
    You should add this in $BI_HOME/bifoundation/web/display/authenticationschemas.xml:
    <SchemaKeyVariable source="httpHeader" nameInSource="Proxy-Remote-User" forceValue="SSO"/>
    <AuthenticationSchema name="SSO" displayName="Single Sign On" userID="IMPERSONATE" proxyUserID="NQ_SESSION.RUNAS" options="noLogoffUI noLogonUI">
    <RequestVariable source="httpHeader" type="auth" nameInSource="Proxy-Remote-User" biVariableName="IMPERSONATE" options="required"/>
    </AuthenticationSchema>
    Please suggest.
    Thanks.

    I think maybe your SnmpValue type or value is not corrent.
    1.3.6.1.4.1.7064.201.1.200.100.0 is Enum control type
    when I use
    SnmpValue val = new SnmpString("0");
    It doesn't work, but when I use
    SnmpValue val = new SnmpInt(0);
    It works. I think the JDMK should give some warning message when the type is not correct. :)
    The code is following:
    final SnmpVarBindList setList = new SnmpVarBindList(" set varbind list ");
    SnmpOid oid = new SnmpOid("1.3.6.1.4.1.7064.201.1.200.100.0");
    SnmpValue val = new SnmpInt(0);
    SnmpVarBind valueBind = new SnmpVarBind(oid, val);
    setList.addVarBind( valueBind );
    SnmpRequest setRequest = session.snmpSetRequest(null, setList);

  • To pass new session variable value to stored proc before running a report.

    Hi,
    Below is summary of the report requirement -
    Database level design
    1. Created a view and a global temporary table (GTT)
    2. Created an Oracle package procedure to accept from and to business dates on basis of which it will fetch, process and populate the GTT.
    Repository level design
    1. Created a business model containing the view and the GTT (mentioned above)
    2. Created two SESSION variables "from_dt" and "to_dt" to be initialized by their respective init blocks. Each of the variable is initialized with a DATE column value (of type DATETIME) from a database lookup table. I have also set the option "Enable that variable to be set by any user" for both variables.
    Query for these variables :
    from_dt = select from_date from <table>
    to_dt = select add_months(from_date,12) from <table>
    Presentation level design
    1. Using a text box, i display the default/initialized values of these variables like this -
    Current business date:@{biServer.variables['NQ_SESSION.from_dt']} Future business dt:@{biServer.variables['NQ_SESSION.to_dt']}
    Dates get displayed in YYYY-MM-DD 00:00:00 format
    The text msg displays these default dates and allows the user to specift different date range for which i create prompts as shown below.
    2. Using any random two columns of date type from the business model, i create two date dashboard prompts with labels "From Dt" and "To Dt".
    i select Calender Controls for both; setting Default To = Report Defaults.
    The Set Variable is set to Presentation variables - such that pv_from_dt maps to "From Dt" and pv_to_dt maps to "To Dt".
    3. i create the report using the business model created above. In the report "Advanced Tab" => "Prefix" field i specify the following -
    SET VARIABLE from_dt='@{pv_from_dt}',to_dt='@{pv_to_dt}';
    Note : The logic here is to display the default dates and allow user to specify different date values which will be stored in presentation variables.
    If the user does specify different "from dt" and "to dt" values, then using the presentation variables, i want to "write" back these new values to the corresponding session variables mentioned above.
    If the user does not specify different date range, then the default/initialized dates must be considered.
    I also display the default and new date values in the report title.
    Back to Repository level design
    To execute the stored procedure that will load the GTT before running the report I need to pass two date parameters to the stored procedure on basis of which it will fetch data, process and populate the GTT.
    In the Connection Pool --> Connection Script Tab --> Execute before query, I wrote the below query using the repository variables FROM_DT and TO_DT to execute the procedure -
    DECLARE
    v_from_dt date;
    v_to_dt date;
    BEGIN
    v_from_dt := VALUEOF(From_Dt);
    v_to_dt := VALUEOF(To_Dt);
    package_name1.package_body(v_from_dt,v_to_dt);
    END;
    Now when i try to run the report i get the following error :
    [nQSError: 10058] A general error has occurred. [nQSError: 23006] The session variable, NQ_SESSION.to_dt, has no value definition. (HY000)..
    Need help on this.
    Is it possible to "write back" a new value to a session variable ?
    Any other alternatives.
    Thanks
    Nusrat
    Edited by: user10309945 on Jan 24, 2011 10:08 PM

    Sandeep, I found a several topics where users describe saving values in DB through stored procedure or function. For example, [How to store OBIEE presentation level variable values in DB |http://forums.oracle.com/forums/thread.jspa?threadID=892006] I tried it and get an error
    *10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 17001] Oracle Error code: 14551, message: ORA-14551: cannot perform a DML operation inside a query ORA-06512*
    It's not a BI error. This error are generated by Oracle DB. If I write next:
    SELECT MyPLSQLFunction(p1,p2) FROM DUAL
    I get the same error.
    Oracle doesn't allow DML operations in SELECT.
    Did you relalize this feature yourself? Where did I mistake?

  • Session variable size limitation (LV Webservices)

    Hi community,
    I read couple dozen email addresses from an XML and trying to write them into a session variable. The email addresses are comma separated and have a total string length of about 1100 characters. When I try to write it into a session variable LabVIEW drops an error message (-67158).
    It is very clearly related to the size of the string as if use lets say only 200 characters I dont receive the error message.
    How can I get rid of this limitation?
    Thanks!

    I am writing a general purpose webpage where I need email notifications. I have the workaround ready (before I send out the emails I dont read the emails from a session, but using the userID stored in the session to read the email from the xml). But generally having this limitation is annoying and unnecessary as normally you easily can store 100kB in one session. (probably even more, but that was the max I have ever did)

  • Trying to move a list of form variables to session variables of the same name

    I am trying to move a list of form variables to session variables of the same name and I am having a lot of trouble.
    I have never had to post of this forum with a language question in all the 10 years I have been using ColdFusion. I was a qa Engineer @ Allaire/Macromedia back when it was going from one to the other. I have a pretty good grasp of the language.
    I have software that runs off a list. The fieldnames are variable and stored off in an array. It's survey software that runs off a "meta file". In this example; I have the number of fields in the survey set to 12 in the "metafile". I have each field declared in that file in array Session.SurveyField[1] and the above loop works fine. I include this "metafile" at the start of the process.
    I cfloop around a struct and it works wherever I have needed to use it; such as here - writing to the database for example;
    <CFQUERY NAME="InsertRec" DATASOURCE="Survey">
    INSERT into #variables.SurveyTableName#
    (EntryTime
    <cfloop from="1" to="#Session.NumberOfSurveyFields#" index="arrayindex">
    ,#Session.SurveyField[arrayindex]#
    </cfloop>
    <!--- EXAMPLE OF WHAT THE ABOVE GENERATES
    ,q01_name,q02_AcadTechORNA,q03_Water,q04_FirstAid,q05_CPR,q06_LifeGuard,q07_AED
    ,q08_ProjAdv,q09_Color,q10_SantaClaus,q11_Supervisor,q12_SupervisorOpinion --->
       VALUES
        ('#EntryTime#'
    <cfloop from="1" to="#Session.NumberOfSurveyFields#" index="arrayindex">
    <cfset thisname = "Session." & Session.SurveyField[arrayindex]>
    ,'#evaluate(variables.thisname)#'
    </cfloop>
    <!--- EXAMPLE OF WHAT THE ABOVE GENERATES
    ,'#Session.q01_name#','#Session.q02_AcadTechORNA#','#Session.q03_Water#','#Session.q04_Fi rstAid#'
    ,'#Session.q05_CPR#','#Session.q06_LifeGuard#','#Session.q07_AED#','#Session.q08_ProjAdv# ',
    ,'#Session.q09_Color#','#Session.q10_SantaClaus#','#Session.q11_Supervisor#','#Session.q1 2_SupervisorOpinion#' --->
    </CFQUERY>
    NOW HERE'S THE PROBLEM: I am running into trouble when trying to move the form variables to session variables of the same name. It is the only part of the software that I still need the datanames hard coded and that is a roadblock for me.
    <cfloop from="1" to="#Session.NumberOfSurveyFields#" index="arrayindex">
    <cfset thissessionfield = "Session." & Session.SurveyField[arrayindex]>
    <cfset thisformfield = "Form." & Session.SurveyField[arrayindex]>
    <cfset #thissessionfield# = #evaluate(thisformfield)#>
    </cfloop>
    I have tried it with or without the "evaluate"; same result. It doesn't give an error; it just ignores them (session variables look as such in the next page in the chain)
    q01_name=
    q02_acadtechorna=
    q03_water=
    q04_firstaid=
    q05_cpr=
    q06_lifeguard=
    q07_aed=
    q08_projadv=
    q09_color=
    q10_santaclaus=
    q11_supervisor=
    q12_supervisoropinion=
    Note: they exist because I CFPARAM them in a loop like the above at the start of the procedure) - and this works just fine!
    <cflock scope="Session" type="EXCLUSIVE" timeout="30">
    <cfloop from="1" to="#Session.NumberOfSurveyFields#" index="arrayindex">
    <cfset dataname = "Session." & Session.SurveyField[arrayindex]>
    <cfparam name="#variables.dataname#" default="">
    </cfloop>
    </cflock>
    I EVEN tried exploiting the Form.Fieldnames list using CFLoop over the list and the same sort of logic within and it still gives me nothing....
    Here's the FORM.FIELDNAMES value
    "Q01_NAME,Q02_ACADTECHORNA,Q03_WATER,Q04_FIRSTAID,Q05_CPR,Q06_LIFEGUARD,Q07_AED,Q08_PROJAD V,Q09_COLOR,
    Q10_SANTACLAUS,Q11_SUPERVISOR,Q12_SUPERVISOROPINION"
    Here's the logic; SAME RESULT - The session variables don't get set.
    <cfoutput>
    <cfloop list="#Form.FieldNames#" index="thisfield">
    <!--- <br>#thisfield# --->
    <cfscript>
    thisSESSIONfield = "Session." & thisfield;
    thisFORMfield = "Form." & thisfield;
    #thisSESSIONfield# = #thisFORMfield#;
    </cfscript>
    </cfloop>
    </cfoutput>
    The CFPARAM in a loop with variable output name works just fine; so does the post (which I included above) as does the SQL Create, Param Form Variables, Param Session Variables, etc.
    THIS even works for moving BLANK to each session variable, to zero them all out at the end of the process;
    <cflock scope="Session" type="EXCLUSIVE" timeout="30">
    <cfloop from="1" to="#Session.NumberOfSurveyFields#" index="arrayindex">
    <cfset thislocalfield = Session.SurveyField[arrayindex]>
    <cfscript>
    thissessionfield = "Session." & thislocalfield;
    </cfscript>
    <cfset #thissessionfield# = "">
    </cfloop>
    </cflock>
    Expanding on that code, you would think this would work, but it doesn't;
    <cfloop from="1" to="#Session.NumberOfSurveyFields#" index="arrayindex">
    <cfset thislocalfield = Session.SurveyField[arrayindex]>
    <cfscript>
    thissessionfield = "Session." & thislocalfield;
    thisformfield = "Form." & thislocalfield;
    </cfscript>
    <!--- debug --->
    <!--- <cfoutput>#thissessionfield# = "#evaluate(thisformfield)#"</cfoutput><br> --->
    <cfoutput>
    <cfset #thissessionfield# = "#evaluate(thisformfield)#">
    </cfoutput>
    </cfloop>
    And see that debug code in the middle? To add insult to injury... When I uncomment that it shows me this. So it certainly looks like this should work....
    Session.q01_name = "Me"
    Session.q02_AcadTechORNA = "N/A"
    Session.q03_Water = "Yes (certificate expired)"
    Session.q04_FirstAid = "Yes (certificate is current)"
    Session.q05_CPR = "No"
    Session.q06_LifeGuard = "Yes (certificate expired)"
    Session.q07_AED = "Yes (certificate expired)"
    Session.q08_ProjAdv = "Yes (certificate expired)"
    Session.q09_Color = "Gray"
    Session.q10_SantaClaus = "Yes"
    Session.q11_Supervisor = "Da Boss"
    Session.q12_SupervisorOpinion = "Not a bad thing"
    There must be some simpler way to do this. This way won't work against all odds even though it seems so much like it should.
    So I end up having to hardcode it; still looking for an automated way to set these #@%$*@!## session variables over the list from the form variables of the same @#@!$#%$%# name. Do I sound frustrated???
    No matter what I do, if I don't HARDCODE like this;
    <cfset Session.q01_name = Form.q01_name>
    <cfset Session.q02_AcadTechORNA = Form.q02_AcadTechORNA>
    <cfset Session.q03_Water = Form.q03_Water>
    <cfset Session.q04_FirstAid = Form.q04_FirstAid>
    <cfset Session.q05_CPR = Form.q05_CPR>
    <cfset Session.q06_LifeGuard = Form.q06_LifeGuard>
    <cfset Session.q07_AED = Form.q07_AED>
    <cfset Session.q08_ProjAdv = Form.q08_ProjAdv>
    <cfset Session.q09_Color = Form.q09_Color>
    <cfset Session.q10_SantaClaus = Form.q10_SantaClaus>
    <cfset Session.q11_Supervisor = Form.q11_Supervisor>
    <cfset Session.q12_SupervisorOpinion = Form.q12_SupervisorOpinion>
    I always get this from my next page because the session variables are empty;
    You must answer question 1.
    You must answer question 2.
    You must answer question 3.
    You must answer question 4.
    You must answer question 5.
    You must answer question 6.
    You must answer question 7.
    You must answer question 8.
    You must answer question 9.
    You must answer question 10.
    I tried duplicate as well, but I can not get the above to work...
    Can anyone help me do this thing that one would think is simple????

    I think if you use structure array syntax you should get the results you want.
    <cfloop from="1" to="#Session.NumberOfSurveyFields#" index="arrayindex">
          <cfset session[Session.SurveyField[arrayindex]] = Form[Session.SurveyField[arrayindex]]>
    </cfloop>
    Or probably even easier.
    <cfset session = duplicate(form)>

  • 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

  • Compare data record to session variable

    I am completely stumped. It should be easy.
    I am trying to compare a field from a database to a sesssion variable on a JSP page and even though the fields print out the same when I call them in JSP, my "If" statement never gets activated.
    Here's the last version of the code I tried:
    String usernamev = UserSession.getValue("username").toString();
    String custname = RS.getString("ORCUST");
    if (usernamev.equals(custname))
    userrole="Customer ";
    I've also tried this:
    String usernamev = UserSession.getValue("username").toString();
    String custname = RS.getString("ORCUST").toString;
    if (usernamev.equals(custname))
    userrole="Customer ";
    And I've also tried this:
    if (RS.getString("ORCUST").equals(usernamev))
    userrole= "Customer ";
    And This:
    And I've also tried this:
    if (usernamev.equals(RS.getString("ORCUST")))
    userrole= "Customer ";
    When RILLI is the field I'm trying to compare this works:
    if (usernamev.equals("RILLI"))
    userrole= "Customer ";
    Somehow my data type must be wrong but I can't figure out why. When I print out
    <%=usernamev%>
    and <%=RS.getString("ORCUST")%>
    they show on my webpage as RILLI. I can also assign a constant value to userrole without a problem.
    What the heck am I doing wrong?

    I think limeybrit was on the right track and I hadn't trimmed because I got a no trim method error before because I hadn't converted session variable to a string.
    When I used this:
    String usernamev = UserSession.getValue("username").toString();
    usernamev = usernamev.trim();
    String custname = RS.getString("ORCUST").trim();
    I think its working now. Thanks for help all.

  • Session variable getting reset when leaving dashboard

    I have created a session variable with the 'Enable any user to set the value' option.  I'm using the session variable as the default for a dashboard prompt.  I'm able to set the variable with that  dasboard prompt, and I can confirm that it is indeed getting set properly.  So the interaction of the variable and the prompt seems to be in order.
    After I make a selection from the dashboard prompt, as long as I stay in the dashboard, the session variable stays set to my selection.  I can move from page to page and everything is fine.  The selection stays put as I have set it.  However, the moment I leave the dashboard, the session variable is reinitialized back to its default value as specified by the SQL in its initialization block.  I can go from dashboard to catalog and back to dashboard - boom, it's back to the default.  My selection has been replaced.  ???
    And here's an odd thing:  I can look in the query log and see the initialization block code getting run when I log in.  So far, so good.  I can run the dashboard, make a prompt selection, and see the query log updated just fine.  Still OK.  BUT... when I switch from dashboard to catalog and back to dashboard, the value of the session variable is reset (I see the default month in my analysis and as the prompt default upon redisplay of the dashboard page), but there's no indication in the query log that the initialization block SQL ran again.  The last SQL in the query log still shows my "selected" value in the SQL.  The dashboard page is showing the "default", while the last entry in the query log shows the "selected".
    Can anyone else confirm this odd behavior?  And is there a reason that a session variable should not retain its value throughout the session?  I've always viewed session variables as little buckets of single-cell data whose contents are consistent and static for the duration of a session, unless manually changed by a dashboard prompt.  If the behavior that I'm seeing is both replicatable and expected, it would appear that my understanding is flawed.
    Running 11.1.1.7.0 on Windows Server 2008.  Same behavior is occurring in both Firefox 21 and IE 9.

    Thank you for your answer MK,
    I try to write a SQL in my prompt but not work for me:
    -In default selection I choose SQL Results and I type: Year(Current_date) and save my prompt and I don't see any value in my dashboardpage, if I click in prompt I can see all members of my year dimension but by default is empty.
    I modify the other solution: I have 1hour refresh time and I change for 1 minute, but doesn't work.
    the default initializer is in RPD (variable year that belongs to BI_Year Block) and I have written 2009.

  • Urgent help required...for replacing JSP session variables

    I am trying to enhance the performance of a j2ee based webapp which use session variables to store the data...
    Is there any alternative for session variables..The project is based on j2ee-Struts frame work..But the amount of code maintainance should be minimum ....so i can't create beanforms for all these data...
    Is there any XML based methods available...??

    ok... thanks... i created a fla file and inthe action script
    pasted the following code
    var nc:NetConnection = new NetConnection();
    nc.connect("rtmp://flash.ispstream.com/ondemand/unikron/my_video_dj/");
    var ns:NetStream = new NetStream(nc);
    contentMain.myVideo.attachVideo(ns);
    ns.setBufferTime(5);
    ns.play("dvd_r");
    nothing is working if i tried to load... can u help me out

  • Passing attribute value in session variable

    Hi All
    I need to store one field value from my SIM form as a session variable and pass them to the next page along with my session, using some jscript stuff or else. Does this make sense?
    If it is possible or anyone have any prior experience please reply.
    Thanks in advance

    We have tested a code-snippet that 'gets' attribute-values from the session:
    <invoke name='getAttribute'>
        <invoke name='getHttpSession'>
            <ref>:display.state</ref>
        </invoke>
        <s>attribute_name</s>
    </invoke>You can try 'setAttribute' in the similar way.
    Thanks,
    Adi

  • 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.

Maybe you are looking for