Referencing session state across DBLinks

I have a central security package that all applications access to provide item-level authorisation.
Recent extensions to the security model require additional information from the application, held in Application Items.
For various legacy reasons I want to avoid having to add additional parameters to the security functions called so I reference the application items via the V() function. This works perfectly on local applications (within the same database) but V() returns null values if the application is accessing the security function via a DB link.
So, is there any way to access session state from a PL/SQL package of an application that is not running on the same database?
Regards
Richard

Richard
Something along these lines might work. Say the remote package is named 'sec var'. At the remote db create 'sec_vas' as follows. create or replace package sec_vars is
var1 varchar2(100);   // new items needed by auth fn
var2 varchar2(100); 
procedure setval (var1 in varchar2,var2 in varchar2);  //sets var1/var2  with values from session state   
function getval (var in varchar2)  return varchar2;   // the local 'v' fn
function doAuth() return boolean;
end;
create or replace package body sec_vars is
procedure setval (var1 in varchar2,var2 in varchar2) is
begin
sec_vars.var1:='Variable 1';
sec_vars.var2 := 'variable 2';
end;
function getval (var in varchar2)  return varchar2 is
begin
if upper(var)='VAR1' then
   return sec_vars.var1;
elsif  upper(var)='VAR2' then
    return sec_vars.var2;
else
    return null;
end if;
end;
function doAuth() return boolean is
begin
select count(*) from emp where ename=sec_vars.get_val('VAR1'');
return true;
end;
end;And in the Apex db we do something like create synonym sec_vars for sec_vars@remote_db;
// an auth process
begin
sec_vars.setval ('Variable 1','variable 2'); // set required session item values
sec_vars.do_auth();
end;varad

Similar Messages

  • Query referencing session state not consistently returning data

    Hi,
    I have a form that summarizes expense data by category for employees, per fiscal year, fiscal period, and project.
    Clicking on a button next to a particular category takes the user to a new page that should display the detail of those expenses, based on expense_code.
    The expense_code is passed via URL to the second page, and the query region for the detail has the following source:
    select exp_code, JRNL_ID_NO, DESCRIPTION, REFERENCE, CUR_PER_TRAN, CUM_YTD
    from fgspec_ac where exp_code between :P118_EXPENSE_CODE_FROM and :P118_EXPENSE_CODE_TO and project=:P114_PROJECT and fis_year=:P114_FIS_YEAR and fis_period=:P114_FIS_PERIOD
    :P118_EXPENSE_CODE_FROM and :P118_EXPENSE_CODE_TO are passed via URL, and the :P114_% fields reference data on the initial form.
    The problem is that when I click on the button to bring up the detail for the first time, the query returns no rows. If I return to the original form and click on the button a second time, the query the displays the required data. This behavior is consistent, regardless of expense category, fiscal period, etc. The first time I try to access detail, no records returned, but the second time, it works.
    I have used the 'SESSION' link to debug and view the session state in each case, and the results are IDENTICAL whether the query returns data or not. That is, all 5 variables contain the exact same data.
    Do you know what I might be doing wrong?
    Thanks,
    Michelle

    Hi guys,
    Thanks very much for your replies. In fact, I have tried both methods. Yes, I am navigating from page 114 to 118, and passing values to page 118 from page 114 (ie: P114_PROJECT passes to P118_PROJECT, etc...). In my query, I have tried referencing both, with the same results.
    When checking values in session state (by using the 'SESSION' link), values from page 114 are available in both cases (when the query returns rows and when it does not). It is very strange behavior.
    I have been developing with HTMLDB for over a year now, and never seen anything like it!!! I will try loading this on HTMLDB.oracle.com, and see if it replicates, and if so, maybe you can have a look...............
    Thanks!
    Michelle

  • Session state consistency - how does APEX keep session state across pages

    I would like to know how the APEX develper tool keeps session state from being overwritten across mutiltple pages in the same Session. Because this is difficult to explain I'll use an example from withing the APEX dev tool
    For Example:
    1. I navigate to the page (4150) thet allows me to edit my Page 880 [Window 1]
    2. I now do a Cntrl^N to Open a New Window in the same session (this opens on the same Page 880 in the new window) [Window 2].
    3. In Window 1, I click an item to update ie I want to put a comment on the Unconditional Branch so click this to go to the Update page. I see the F4000_P4313_ID is passed in the URL (ie the context, UID of the Branch).
    4. In Window 2, I change the page to 881 - ie this is overwriting my Session State variables for page 880 with page 881.
    5. I click an item in Page 881 to update ie I want to put a comment on the Unconditional Branch so click this to go to the Update page. I see the F4000_P4313_ID is passed in the URL (ie the context, teh UID of the Branch).
    6. In Window 1 (the Page 880), I add a comment to the Branch and 'Apply' changes. On returning to the Page the context has changed from 880 to 881 (as expected as Window 2 had overwritten the session state). Slightly confusing for the user as they did go from Page 880 not 881 but ok
    What intrigues me is how the Edit Branch page applied the update to the correct branch [good !]. Why weren't the Branch Session state variables (ie the Branch for Page 880) overwritten with the Branch Session state variables for the Branch from Page 881 ?
    Both navigations go to the same Page passing the UID of the branch, hence I would of thought the last navigation is the one that would be persisting (ie from Page 881 Window) ?
    Any tips on preventing users updating the wrong record because of the Session State being overwritten would be most welcome.
    Look forward to hearing from you.

    Let me take a shot at explaining this.
    Session state is stored in Oracle database tables. When a APEX page is rendered, those tables are read and the HTML is sent to the browser. When that page is submitted, all the HTML form inputs on the page are saved back into session state over-writing any existing values for that session
    So, in your example, since Page 4313 has the hidden page item (the "GUID" of the branch), it doesn't matter if any other window has the same page open with some other GUID. Each page is a self-contained "unit" which has all the information necessary to properly process that page when it is submitted.
    Think of it this way...in your example, when you have windows 1 and 2 open (window 2 was opened after window 1), go back to Window 1 and click the browser's Reload/Refresh button. Instead of refreshing the same page (branch 9000000), you will find that it will load branch 8000000! This is because session state is read from the database and when Window 2 was rendered, it has set F4000_P4313_ID in session state to 8000000.
    Hope this helps.

  • Different ways to referencing Session State variables

    Hi,
    According to APEX documentation there's 4 different ways to reference session state variables: http://download-west.oracle.com/docs/cd/B32472_01/doc/appdev.300/b32471/concept.htm#BEICHBBG
    In an inline PL/SQL statement, what's the difference when using the different methods? I remember reading something that the bind and static text have a size restrictions. What's the difference between the V() and NV() functions?
    Thank you.
    Martin

    Martin,
    In PL/SQL, the preferable method is to use bind variable notation, e.g., :P1_ITEM. In HTML contexts, you must use &ITEM. notation. In stored procedures, you can use v or nv, the latter function being identical to the former with the additional characteristic that it raises an exception if the retrieved value is non-numeric.
    Scott

  • How to reference session state in a list entry label

    You can use &<item>. to reference session state values which can then be used in titles and item labels but it seems it does not work in the label for a list entry (i.e. to build a menu).  Is there a workaround?
    thanks in advance
    PaulP

    OK I just realized that referencing session state doesn't work for lists used by Enkitec's NavBar plugin solution.  It does reference the &<ITEM>. correctly for normal APEX lists. Anyone know how to reference session state when using Enkitec's NavBar plugin solution?
    PaulP

  • Session state variables across multiple ApEx applications

    We have a suite of loosely integrate ApEx applications that all share a common authentication scheme. When you first log in we attempt to load a series of session state variables with temporary data to streamline various logging and authentication related activities for the life of the session.
    However, these session variables seem to disappear when you move from one application to another, so they are not truly tied to just the "session" which carries over across all applications, but the application from which the session state is set.
    What is the suggested way, keeping in mind that the data being held may have security related context, to preserve values during a session, but regardless of which ApEx application you are in.
    The method we are using to share the authentication is using a common "Cookie Name" from a common subscribed authentication scheme as suggested elsewhere on this site and seems to work very well outside of this specific issue.
    Thanks in advance,
    Barney

    Apologies for the delay getting back on this.
    My use of the word "disappear" was probably misleading. They were not visible from the second application. When setting "Session State" I was under the impression that it was setting it for the authenticated session, not for the specific application. (I am referring to the: apex_util.set/get_session_state).
    Your solution will work fine, as long as I know which application the user last authenticated against. However, it could be one of over 30 (and growing) different applications which would require me writing a program to go through every "p_flow" to try and find a valid value every time I need to reference the field.
    It would be really beneficial if you could store true Session variables which stay alive for the life of the authenticated session and is available to anything authenticated against that session id. This would streamline alot of cross-application program development.
    The "get/set_session_state" is a misleading as it is not a Session value, but an Application value. The Session exists across multiple applications, while this procedure does not.
    Thanks,
    Barney

  • Session State Replication of Referenced Objects

    Here is question on Clustering and Session state replication:
              Scenario:
              Consider two Session Objects A and B.
              Object A has-a reference to object B.
              So whatever changes done to Object B is reflected in Object A.
              In-memory Session replication happens on every HttpSession.setAttribute() call.
              The question is will the two session objects(A and B) be replicated to the other cluster and will still maintain the reference relationship or will they be two separate objects with same data (in different memory locations).
              regards,
              Jaiganesh

    Ok, I have been meaning to dig into session replication in a bit more detail and your question is a good excuse to do it!
              First stop the docs:
              Bea Docs
              The bits that jump out are under:
              Programming Considerations for Clustered Servlets and JSPs
              1) Session Data Must Be Serializable, so both your objects are serializable.
              2) Use setAttribute to Change Session State In an HTTP servlet that implements javax.servlet.http.HttpSession, use HttpSession.setAttribute (which replaces the deprecated putValue) to change attributes in a session object. If you set attributes in a session object with setAttribute, the object and its attributes are replicated in a cluster using in-memory replication. If you use other set methods to change objects within a session, WebLogic Server does not replicate those changes. Every time a change is made to an object that is in the session, setAttribute() should be called to update that object across the cluster.
              Likewise, use removeAttribute (which, in turn, replaces the deprecated removeValue) to remove an attribute from a session object.
              >Will the reference as shown in the step 3 will be >maintained after replication on the other cluster ?? I >guess not!!
              I don't understand "on the other cluster" There is normally one cluster made up of a few servers. The session state is maintained on one primary server and a secondary server. So you have aObj.a2 = bObj, from the docs I would understand that at the momment you called session.setAttribute the aObj and all its fields provided they are seriliazable will be replicated in Mememory.
              >There the aObj and bObj stored in the two different >session objects will not have a reference relationship >in other words if i change bObj on the other cluster >will the reference a2 of aObj be able see it ??
              This is testing the limits of my understanding, but would have thought if the objects are in different sessions they should not be able to reference each other in the manner I think you are suggesting, so if I access aObj.a2 (an instance of bObj) and changed it in one session it should not affet any other bObj unless bObj is a singleton....I think!
              What say you?

  • Feature Request - show substitution string values in session state display

    Hi!
    I would like to request that in addition to page and application items and session state values that the value of substitution string values be shown. Another option would be to have a separate link (like session) to display them. This would allow developers to see all of the available substitution values and how they change across pages, etc.
    Thanks!
    Dave Venus

    Dave - What are some examples of values that you are not seeing in the session state report that would be useful?
    Scott

  • Controlling Session State and Submit Processing

    I am trying to gain a fundamental understanding of how to control submit processing and session state, etc.
    For example, I have a popup lov that lists names and returns id for the parent record. When the user make the selection using this pop lov, I then have an id that I want to use to lookup the default value for another field.
    How do you submit a page for re-rendering (i.e, you have condition expressions referencing values that the use has set) without triggering the auto dml and page branch?
    For example, I have a form for specifying tns names with 2 buttons, 'Advanced Config' and 'Basic Config'. The idea is to hide/show items corresponding to basic or adv. config options, etc.
    My first approach was to have the buttons do a redirect to the same page, setting P5_USE_ADV_CONFIG_YN to Y or N without clearing the cache. When the page refreshes, the conditional rending has occured as desired (i.e., I set the condition on my form items to reference P5_USE_ADV_CONFIG = Y or N, etc.), but user's data values have been lost since the record was reloaded from the database.
    So..I tried putting a condition on the fetch procedure to prevent the record from being re-read. However, this left all the fields empty which indicates that the item's session state has been completed cleared! Huh? I didn't want ask for or want this behavior. Hmmm.
    So, I start thinking that the persisted session wasn't updated since I didn't do a submit and so when the page was requested, it behaved as it should, but not what I had in mind. THUS...I believe I need to submit the page and prevent the auto-dml and page branching afterwards....but how? I feel that I am missing something very fundamental here and that the answer may also help me with other related questions:
    * How does the confirm delete examples work? How is the processing stopped when the user presses cancel?
    * How can you do validations and stop dml processing without losing the user values?
    * How can you display and error page and then return to where the user was with the values still present?
    * How can I do a secondary sql value lookup based on the users selection in a popup lov? (User selects a Database/DbID - then I want to lookup host using DbId)
    I haven't been successful understanding this from the manuals, but someone can point me to some material that explains submit processing, redirects, etc. I would be happy to do some more digging.
    Thanks greatly in advance.

    Thanks Scott,
    I may be being dumb here but I don't see how that would help...
    P250_PROJECT and G_PROJECT are currently kept in sync by app logic. Whichever is used to drive, if the page is rendered from cache then the app logic is not executed, so the rendered page contents are not those keyed by P250_PROJECT, as illustrated in steps 1-4 of the problem above.
    The user sees X, the session items say Y. The engine doesn't know what the user is seeing.
    when page P is POSTed, its hidden item P250_PROJECT should always be used to derive the application item G_PROJECT. Then whether the page was pulled from cache or rendered anew via a click from the sidebar link, the project ID is determined by the contents of that page.
    As I said above I tried this, with the 'Edit' branch set to:
    Set these items: G_PROJECT
    With these values: &P250_PROJECT.
    but it makes no difference. The project ID is not determined by the rendered page contents - the engine gets the value of P250_PROJECT from session state.
    I can code the 'Edit' pages such that they check permissions and if necessary redirect back to p250 (conditional before-header branch), but that's a clunky cure rather than the prevention I was hoping for.
    Please tell me if my understanding is incorrect.
    jd

  • ??? On Session State

    Background info:
    I have a field that could have two different types of input, one would be numeric (such as a PK) the other input to it would be text. To ensure the Automated Row Fetch always pulls the PK properly I am using a computation ON LOAD to turn the text into numeric so that when the Automatic Page Load runs it will always pull from the database based on the PK.
    This part is working properly the problem is that I have an item that is a select list and it unforunately has an dynamic LOV with a query of select a,b from table_xyz where value = :session_state_of_pk
    This is causing me a problem because it is referencing the "text value" and not the numeric value. Even though when I change my page view to "Events" the page rendering shows computations before Items. I even did a Pl/sql process ON LOAD to insert the :session_state value to a debug table.
    So my question is ... If the pl/sql on load process is holding the correct value then why is the LOV of a page item not using the correct value??
    This is the error I get on the page Item that is an LOV:Error: ORA-01722: invalid number performing List of Values query

    Vikas, I have done this and here are the results:
    .01: S H O W: application="110" page="103" workspace="" request="" session="6865688852817169"
    0.01: Language derived from: FLOW_PRIMARY_LANGUAGE, current browser language: en-us
    0.01: alter session set nls_language="AMERICAN"
    0.01: alter session set nls_territory="AMERICA"
    0.01: NLS: CSV charset=WE8MSWIN1252
    0.02: ...NLS: Set Decimal separator="."
    0.02: ...NLS: Set NLS Group separator=","
    0.02: ...NLS: Set date format="DD-MON-RR"
    0.02: ...Setting session time_zone to dbtimezone
    0.02: NLS: Language=en-us
    0.02: Application 110, Authentication: CUSTOM2, Page Template: 724212235889446
    0.02: ...Supplied session ID can be used
    0.02: ...Application session: 6865688852817169, user=JRP22
    0.02: ...Determine if user "JRP22" workspace "1786101047996118" can develop application "110" in workspace "1786101047996118"
    0.03: Session: Fetch session header information
    <b>0.03: Saving g_arg_names=P103_IP_ID and g_arg_values=077.243
    0.03: ...Session State: Save Item "P103_IP_ID" newValue="077.243" </b<"escape_on_input="N"
    0.03: ...Metadata: Fetch page attributes for application 110, page 103
    0.03: Fetch session state from database
    0.04: Branch point: BEFORE_HEADER
    0.04: Fetch application meta data
    0.04: Authorization Check: "6961000503551770" User: "JRP22" Component: "PAGE"
    0.06: Computation point: BEFORE_HEADER
    <b>0.06: ...Perform computation of item: P103_IP_ID, type=QUERY
    0.06: ...P103_IP_ID=select ip_id from IP where IP = :P103_IP_ID;
    0.06: ...Session State: Saved Item "P103_IP_ID" New Value="32"
    0.06: Processing point: BEFORE_HEADER
    0.06: ...Process "TEST DB INSERT SESSION STATE P103_IP_ID": PLSQL (BEFORE_HEADER) insert into t (col1,col2,tstamp) values ('p395',:p103_ip_id,systimestamp);</b>
    0.08: Show page template header
    0.09: Computation point: AFTER_HEADER
    0.09: Processing point: AFTER_HEADER
    <b>0.09: ...Process "Fetch Row for IP": DML_FETCH_ROW (AFTER_HEADER) F|#OWNER#:IP:P103_IP_ID:IP_ID
    </b>0.10: ...Process "Fetch DNS_NAME To Buffer": PLSQL (AFTER_HEADER) :P103_DNS_NAME_BUFFER := :P103_DNS_NAME;
    0.11: ...Session State: Save Item "P103_DNS_NAME_BUFFER" newValue="3657" "escape_on_input="N"
    0.11: ...Process "Get Next or Previous Primary Key Value": GET_NEXT_OR_PREV_PK (AFTER_HEADER) #OWNER#:IP:IP_ID::IP::P103_IP_ID:P103_IP_ID_NEXT:P103_IP_ID_PREV::::P103_IP_ID_COUNT:
    0.13: ...Session State: Save Item "P103_IP_ID_NEXT" newValue="33" "escape_on_input="N"
    0.13: ...Session State: Save Item "P103_IP_ID_PREV" newValue="31" "escape_on_input="N"
    0.14: ...Session State: Save Item "P103_IP_ID_COUNT" newValue="32 of 3434" "escape_on_input="N"
    0.14: ...Process "Fetch MAC_ADDRESS": PLSQL (AFTER_HEADER) select mac_address into :P103_MAC_ADDRESS from mac_address where IP_ID = :P103_IP_ID;
    0.15: ...Session State: Save Item "P103_MAC_ADDRESS" newValue="00-16-3G-33-25-33" "escape_on_input="Y"
    0.15: ...Process "Fetch Container_Type": PLSQL (AFTER_HEADER) select container_type into :P103_CONTAINER_TYPE from container_type where container_type_id = :P103_CONTAINER_TYPE_ID;
    0.16: ...Session State: Save Item "P103_CONTAINER_TYPE" newValue="BASE_UNIT" "escape_on_input="Y"
    0.16: ...Process "Populate Hidden Assign value": PLSQL (AFTER_HEADER) :P103_ASSIGNED_BUFFER := :P103_ASSIGNED;
    0.16: ...Session State: Save Item "P103_ASSIGNED_BUFFER" newValue="Y" "escape_on_input="N"
    0.16: Authorization Check: "4769021032313739" User: "JRP22" Component: "tab"
    From Session State after the page has loaded:
    Application Page Item Name Display Item Value Status
    110 103 P103_IP_ID Hidden 32 U
    Vikas: From the debug info you can the value comes in with the the IP ( I have removed the first two octets from the debug information) "Saving g_arg_names=P103_IP_ID and g_arg_values=077.243"
    A few steps later a computation is performed and the IP is chagned to an IP_ID which the value is 32, this is correct at this point.. Following that there is a pl/sql insert of :P103_IP_ID and that value is 32 inside the db table.
    Here is what it looks like on the screen:
    <b>Any ideas why the Select List LOV does not like this value?</b>
    Here is the actual LOV query:
    select dns_name,dns_name_id from dns_name where ip_id = :p103_ip_id
    Message was edited by:
    Justin P

  • Session State Protection Confusion!

    Hello all,
    I'm looking into SSP, and find it very confusing; there are so many ways to implement it, and I'm just not sure which I should choose.
    I basically want to stop people tampering with the URL to change the values of variables and the like. I have currently enabled SSP for every page, which seems to work fine.
    However, you can also do it for each item and application item; is this also necessary, or are these options only there if I only wanted to enable SSP for a very specific thing (item) rather than an entire page?
    Does enabling SSP at page level protect the items (application and other) on that page in the same way enabling SSP for each of those items would do?
    Also, are there any implications from using SSP? Will some things not work if I enable it in some instances?
    Thanks for your help.
    Robin

    Robin,
    These are all good questions.
    What situations would arise when you'd want to use "No URL Access" for page access protection and "Restricted - May not be set from browser" for various item protections?
    Sometimes you have pages that you would never want a user to "get to" unless they had used the navigation controls that you built into the application. For example, the intermediate steps within a wizard. You may have seen examples of this in the Application Builder as you step through wizards (and in other places) where you'll be on a page and in the URL all you see is ..wwv_flow.accept, with no f?p URL that tells you what page ID was requested. This is an example of a Branch to Page branch in use. This type of branch does not do a redirect to an f?p URL but instead has the engine's "accept" procedure (from the last page submission) call the engine's "show" procedure directly using PL/SQL without introducing a new HTTP request. So if you have pages like that and you use Branch to Page branches as the "normal" way to get to them AND you want to prevent users from specifying those page IDs in URLS, then this feature of Session State Protection is available to support that.
    and how does the "Restricted - May not..." differ from the "Checksum Required - Session Level"; is that literally where a user can't alter the value of an item in the application, or is there more to it than that?
    Restricted ... prevents an item from being altered from outside the application. The only way you can set or change these items is by application logic. This feature can be used for items even if Session State Protection is not enabled for the application.
    Also, I can't understand just what user level and application level checksums would be useful for.
    Normally, when SSP checksums are generated, they are good for the current session. Say you have a URL like:
    f?p=100:55:ssssssss::NO::P1_ITEM,P2_ITEM:some-value-1,some-value2&cs=38DDFE1C102BDE167BCD66F4C2E77E16E
    A curious user might say, oh, I think I'll bookmark that link and run it again tomorrow to set the same page items to the same values. Well that doesn't work because the checksum is session ID specific. This also makes the hashing algorithm more secure.
    But sometimes you want to provide checksum-secured links that users can bookmark. Maybe you want to email a link to your application to a specific user and the link provides some key value that should be used by that specific user only (and you have authorization logic in the application to enforce that), like f?p...P10_USER_KEY:ABc568zz&cs=238DDFE1C102BDE167BCD66F4C2E77E16D. This is where the use of a User-Level checksum would be applicable. After the user clicks on the link and authenticates, the provided checksum can be verified against a new checksum computed on P10_USER_KEY:ABc568zz. These links can be used across sessions for this type of use but the checksum prevents alteration of the request arguments even by the intended user.
    The third type of checksum is the Application-Level (or Workspace-Level) checksum. Links with this type of checksum can be used by any user so long as the requested application is really the same application from the same workspace that generated the link. The checksum prevents alteration of the request arguments by the user.
    Scott

  • Session state, again

    Hi,
    I am still struggling after session state updates.
    Here is my problem:
    I have a page containing two regions (besides the breadcrumbs):
    the first region contains a couple of combo boxes containing "filters" for the chart.
    The second region contains a pie chart and the sql expression contains two bind variables referencing the aforementioned filters.
    The chart in turn contains links to itself, because the value represented by each slice can be used to split the data into further categories. This is achieved via a hierarchical query representing categories of items, so, for instance, category "Food" is parent of "Beverage" and "Beverage" is parent of "Wines". So when you click on slice "Food", the underlying query returns all the categories belonging to "Food".
    Until now I could not figure out a way to handle the browser's back button correctly, because the "recursive" nature of this scenario is messed up by session state, whose values persist beyond the scope of each page.
    This situation leads to strange results, where the form fields show the correct data, whilst the chart is drawn on entirely different values. This happens only when navigating backwards or forwards using the browser's back or forward button.
    Is there any way to force form values to take precedence over session state values, eventually via javascript, so that the back button returns a meaningful page?
    I tried with different approaches but with little success, so I was wondering if you have any known workaround.
    Thanks,
    Flavio

    Hi Francis,
    We have used the following code in our page template and it works.
    &lt;script&gt;
    //Disables the browser back button
    javascript:window.history.forward(1);
    &lt;/script&gt;
    And in the "Error Page Template Control" to
    &lt;TABLE &gt;
    &lt;TR&gt;
    &lt;TD valign="TOP"&gt;&lt;IMG SRC="&IMAGE_PREFIX.error.gif" width=32 height=32&gt;&lt;/TD&gt;
    &lt;TD valign="CENTER"&gt;&lt;font size=+1&gt;#MESSAGE#&lt;/font&gt;&lt;/TD&gt;
    &lt;/TR&gt;
    &lt;TR&gt;&lt;TD&gt;&lt;A HREF="f?p=&FLOW_ID.:&FLOW_STEP_ID.:&SESSION.::&DEBUG."&gt;&lt;IMG SRC="&IMAGE_PREFIX.back.gif" title="Back" alt="Back to previous page" width=32 height=32 border=0&gt;&lt;/A&gt;&lt;/TD&gt;
    &lt;TD&gt;Back&lt;/TD&gt;
    &lt;/TR&gt;
    &lt;/TABLE&gt;
    &lt;table&gt;
    &lt;tr&gt;&lt;TD&gt;&lt;A HREF="f?p=100:1:&SESSION.::&DEBUG." Title="Click here to go back to Main Menu"&gt;Go back Home&lt;/A&gt;&lt;/TD&gt;&lt;/tr&gt;
    &lt;/table&gt;
    You need to change or add error template because the default functionality of "javascript:window.history.go(-1)" will not work
    Hope this helps
    Vivek

  • Application Item values in Session State in APEX 4.2

    In 4.2, I am not able to see the session state values of my Application Items if I click "Session" at the bottom of a page. We just migrated from 4.1 and we login to a separate app than where we land upon login. I thought the "Global" scope of the Application Item would allow this to track across apps, but its not working. Is this a known issue?

    fac586 wrote:
    Johnny98 wrote:
    In 4.2, I am not able to see the session state values of my Application Items if I click "Session" at the bottom of a page. We just migrated from 4.1 and we login to a separate app than where we land upon login. I thought the "Global" scope of the Application Item would allow this to track across apps, but its not working. Is this a known issue?When you say +"Global" scope of the Application Item+ do you mean the true global scope introduced in APEX 4.2, or are you using the term colloquially, as in "not a page item"?The new global scope introduced in 4.2
    >
    Johnny98 wrote:
    I login to App 1, but land in App 2. My Application Item lives in App 2. Upon login of App 1, an authentication scheme calls a back end function that assigns variables to the Application Item in App 2. What back end function? How does this function assign values to application items in App 2?APEX_UTIL.SET_SESSION_STATE('APP_ROLE', rec.user_type);
    >
    In APEX 4.1 I can see the session state of my Application Items by clicking on the Session button. I cannot see the session state of Application Items after moving everything to APEX 4.2.Have you selected Application Items from the View select list on the session tab and clicked the Set button?Yes, thats what started this thread

  • Session sharing across web applications in an EAR File

    Hi,
    I have an ear file which further has 5 war files. I want to share the same session
    object across all these war files in the ear file. Can u pls tell me if this is
    possible in weblogic. If yes how?
    Thanks,
    Akash

    I'm sorry, by the J2EE 1.3 specification this isn't allowed. I have sent it on
    to the servlet team to add as an option but that won't be in time for you. If
    you need to share state between them I would probably try and put it in another
    place like an EJB or a singleton class in the system classpath.
    Sam
    [email protected] wrote:
    Hi,
    I have an ear file which further has 5 war files. I want to share the same session
    object across all these war files in the ear file. Can u pls tell me if this is
    possible in weblogic. If yes how?
    Thanks,
    Akash

  • Application Express - setting session state.

    I'm a relative newbie to APEX and am trying to set up and populate an application item into session state so that I can then have the value handy throughout the entire session and over all pages of the application. I've defined the item as FPC_Number in page Zero and have also set up a region in Page Zero where the FPC Number will be displayed across all pages of the application. It will not have a value until the user explicitly selects one from a drop down menu, so initially the value will be null. I'm having issues assigning the value. The value will not be assigned during the page rendering phase but at the page processing phase, correct? I have a computation set up as 'begin
    APEX_UTIL.SET_SESSION_STATE('F101_PROJECT_NUMBER',V('P14_PROJECT_NUMBER')); end; '. Does this look right? I get the error: PLS-00103 when I try to execute this. Any ideas?
    Update: I have deleted the calculation and am using a process only. I no longer get the PLS-00103 error message but still no value is displayed in Session_state.
    Edited by: V Rickert on Feb 26, 2013 7:38 AM

    V Rickert wrote:
    I'm a relative newbie to APEX and am trying to set up and populate an application item into session state so that I can then have the value handy throughout the entire session and over all pages of the application. I've defined the item as FPC_Number in page Zero and have also set up a region in Page Zero where the FPC Number will be displayed across all pages of the application. It will not have a value until the user explicitly selects one from a drop down menu, so initially the value will be null. I'm having issues assigning the value. The value will not be assigned during the page rendering phase but at the page processing phase, correct? I have a computation set up as 'begin
    APEX_UTIL.SET_SESSION_STATE('F101_PROJECT_NUMBER',V('P14_PROJECT_NUMBER')); end; '. Does this look right? I get the error: PLS-00103 when I try to execute this. Any ideas?
    Update: I have deleted the calculation and am using a process only. I no longer get the PLS-00103 error message but still no value is displayed in Session_state.APEX version?
    What type of item is "FPC_Number in page Zero"?
    Where is this process and when does it run?
    You said "I've defined the item as FPC_Number in page Zero", but the process is setting the value of F101_PROJECT_NUMBER&mdash;which looks like an application item&mdash;rather than "FPC_Number in page Zero".

Maybe you are looking for

  • Can't show the configuration on Cisco 4503-E

    I have cisco 4503-E as my core switch. When I want to read or save configuration it show "NVRAM: Unable to read configuration. Try again later."  Somebody said the cause of simultaneous access to NVRAM. I use "show users"  to see the access users but

  • Data migration for pricing conditions

    Hello gurus, I want to migrate my pricing condition data from one sap system to another. I am thinking of doing it using ALE or LSMW. Please tell me which would be the better option and also describe step wise how to do that. Many thanks.

  • Impact of contract pricing change on existing PO, shipment, & receiving

    I would like to know the impact of changing a contract line item price on any existing purchase requisition, PO, shipment, and receiving of the item.  Thanks in advance for your response!

  • MacBook Pro speakers fading in and out

    Hi everyone, I have had my MacBook Pro for less than a year and usually very happy with it. However, in the last week the speakers have been playing up. When I'm watching a show or movie, at unexplained times, the audio will fade out so it sounds rea

  • Sherlock gets No translation available message

    This happened to me a few weeks ago, then it started working again. This morning I tried to tanslate "Hello" from English to Spanish (as a simple test) and I got "No translation available." Anyone know why this is happening? I have an 8 year old that