Application contexts in multi-user environments

[Oracle9i Enterprise Edition Release 9.2.0.3.0]
Hi,
I'm experimenting with application contexts as a means of utilizing bind variables in variable WHERE clauses.
In a multi-user environment where the database is accessed from an application using a single user id, are there any conflicts involved when the same procedure is accessed multiple times and the same context variable is set to different values by each call? In other words, can I assume that between the time the user_id of my_context is set and the query is executed in procedure call 1 that those values will be used and not be affected by other procedure calls also setting the user_id of my_context?
Thanks,
Ed Holloman
================================================
create or replace context my_context using my_proc;
================================================
In procedure call 1 to my_proc:
================================================
my_query := 'SELECT * FROM my_table ' ||
'WHERE user_id = sys_context(''my_context'',''user_id'')';
dbms_session.set_context('my_context', 'user_id', '12345');
OPEN my_refcursor FOR
my_query;
================================================
In procedure call 2 to my_proc:
================================================
my_query := 'SELECT * FROM my_table ' ||
'WHERE buyer_id = sys_context(''my_context'',''user_id'')';
dbms_session.set_context('my_context', 'user_id', '45678');
OPEN my_refcursor FOR
my_query;
================================================
etc.

A quick little test shows John's statement in action:
sql>create or replace procedure test_procedure
  2    (p_value in  pls_integer,
  3     p_rc    out sys_refcursor)
  4  is
  5  begin
  6    dbms_session.set_context('TEST_CONTEXT', 'VALUE', to_char(p_value));
  7    open p_rc for select sys_context('TEST_CONTEXT', 'VALUE') from dual;
  8  end;
  9  /
Procedure created.
sql>var rc1 refcursor
sql>var rc2 refcursor
sql>exec test_procedure(1, :rc1)
PL/SQL procedure successfully completed.
sql>exec test_procedure(2, :rc2)
PL/SQL procedure successfully completed.
sql>print rc2
SYS_CONTEXT('TEST_CONTEXT','VALUE')
2
1 row selected.
sql>print rc1
SYS_CONTEXT('TEST_CONTEXT','VALUE')
1
1 row selected.Note the original value (1) has not been stomped on by the second execution even though we fetched this after that second execution and fetch sequence.

Similar Messages

  • Problem with mode switching/Volume Panel in multi-user environment?

    As above - using Windows 7 64-bit with an X-Fi Titanium Fatalty card.
    All works well as long as I'm the only person logged in, but if my wife logs into the computer (using Windows 7's built-in multi-user mode...'fast user switching', which is enabled by default), and then I log back in...well, the volume panel app doesn't seem to work. In fact, even using the control panel app, I can't regain control of the soundcard enough to switch modes.
    Logging her off doesn't resolve the issue, so it seems like something about her logging on (another user logging in, two volpanlu.exe running, something) is causing my instance to go haywire. [FWIW, I'm a 'standard' user on the PC, and her login is a 'limited' user]
    Note that 'killing' the task volpanlu.exe in task managed, then going to the Windows services control panel and stopping and re-starting the 'Windows Audio' service, and finally re-launching volpanlu.exe from the start menu DOES always work to resolve the problem (regardless of if she's logged in or not...this always fixes it).
    Still, that's a kinda annoyingly large set of steps to always have to go through whenever I want to change audio mode after she's logged in.
    Is there any way to fix this? Any setting I could be missing to optimize the X-Fi control panel for multi-user environments? Any of the X-Fi mod dri've packs handle fast user switching better? Any other ideas?

    GA little bit more tinkering around this, and I have some more information:
    - Once I "seize control" (the kill of volpanlu, restart 'Windows Audio' service, re-launch volpanlu), if my wife logs back in, now *she* can't change the audio mode

  • Multi user application control data access

    Dear all,
    i am using Oracle Developer Suite 10g and database 10g, windows xp plate form.
    i want to develop multi user application regarding education.
    i have two questions.
    1. i take a start from creating an HR database which have 30 tables.
    this database has 10 users.
    the users will log on from their own schema.
    how they will access the HR schema?
    should i create a public synonym for each table in the HR Schema?
    or should i create a view for each table in each user schema?
    or should i grant select,insert,update etc to each user on HR schema?
    2. i want to control the data access for each user.
    i.e. every student could access his own academic record. each teacher access his own related record, the manager the owner and so on.
    how to accompolish this task? oracle roles are not sufficient for this purpose.
    Your help is highly appriciated.

    How about you start with the basic stuff, like the 2 days developers guide:
    http://www.oracle.com/pls/db112/to_toc?pathname=appdev.112/e10766/toc.htm
    and make it to the advanced developers guide:
    http://docs.oracle.com/cd/E11882_01/appdev.112/e25518/toc.htm
    and work your way through the concepts manual:
    http://www.oracle.com/pls/db112/to_toc?pathname=server.112/e25789/toc.htm
    and everything else which sounds interesting to you in here:
    http://www.oracle.com/pls/db112/portal.portal_db?selected=5&frame=
    As for your first question this should be covered here:
    http://docs.oracle.com/cd/E11882_01/network.112/e16543/authorization.htm#BABHFJFJ
    i want to control the data access for each user.This is also documented:
    http://docs.oracle.com/cd/E11882_01/network.112/e16543/vpd.htm#CIHBAJGI
    cheers

  • Multi user access in Single application file

    Hi,
    Is it possible to work Single application but multi-user access in Indesign CS6.
    If yes, Please let me know how to access.
    Thansk,
    Uvaraj S

    I'm not sure exactly what you are asking. InDesign files can be edited by only a single user at one time, but any user can open a file not already in use.

  • How to make multi user drawing application

    how to make multi user drawing application in as 3.0

    I'd suggest using Flash Media Interactive Server if you wish to make this type of application and use Flash as the interface.  I can't give you the details on exactly how to implement it, but using Remote Shared Object and FMIS would serve as the basis.  I believe that the package comes with examples of Shared Objects that can serve as a simple basis from which to proceed.  After that you might want to see if you can find an available whiteboard app that can be leveraged to do as you wish.
    I apologize in advance if using this type of solution is a non-starter, I've been using FMIS locally and have plans to eventually implement something similar to this type of drawing app as well.

  • Setting Application Context Attributes for Enterprise Users Based on Roles

    Hello,
    We have an Oracle 11g database with a table containing data from multiple sites (a SiteID field identifies the site for a record). Since application users can have access to different subsets of sites, we would like to use Oracle's Virtual Private Database feature to enforce row-level security on the table.
    I did a successful proof-of-concept with database users. I created a role for each site (example: USER_SITE_A, USER_SITE_B, ...), and then assigned the appropriate site roles to each database user. I then created a package (run via a logon trigger) which set application context attributes for each site. If the current database user has been assigned a role for a given site, then the corresponding attribute named "SITE_PRIVILEGE_SiteID" is set to 'Y'... otherwise, it is set to 'N'. Here is the code which worked to set application context attributes for database users:
    -- For each record in my RoleSitePrivileges table, set
    --   an attribute named 'SITE_PRIVILEGE_<SiteID>'.
    --   If the current user has been assigned a role matching
    --   the value in the 'RoleName' field, set the corresponding
    --   attribute to 'Y'... otherwise, set it to 'N'.
    FOR iPrivRec IN (SELECT RoleName, SiteID
                       FROM RoleSitePrivileges
                       ORDER BY SiteID)
       LOOP
          SELECT COUNT(*)
            INTO roleExists
            FROM dba_role_privs
            WHERE granted_role = UPPER(iPrivRec.RoleName)
              AND grantee = USER;
          IF roleExists > 0 THEN
             DBMS_SESSION.set_context(
                         namespace   => 'my_ctx',
                         attribute   => 'SITE_PRIVILEGE_' || iPrivRec.SiteID,
                         value       => 'Y');
          ELSE
             DBMS_SESSION.set_context(
                         namespace   => 'my_ctx',
                         attribute   => 'SITE_PRIVILEGE_' || iPrivRec.SiteID,
                         value       => 'N');
          END IF;
       END LOOP;To finish things off, I created a security policy function for the table which returns the following:
    RETURN 'SiteID IN (SELECT TO_NUMBER(SUBSTR(attribute, 15))
                         FROM session_context
                         WHERE attribute LIKE ''SITE_PRIVILEGE_%''
                            AND value = ''Y'')';This setup worked great for database users. I am now working to do a comparable proof-of-concept for enterprise users created in Oracle Internet Directory (OiD). I have Enterprise User Security (EUS) up and running with OiD, global roles created in the database, enterprise roles defined in EUS with global role assignments, and enterprise roles assigned to OiD users. The enterprise users are able to successfully login to the database, and I can see the appropriate global role assignments when I query the session_roles view.
    I tried using the same application context package, logon trigger, and security policy function with the enterprise users that I had used with the database users. Unfortunately, I found that the application context attributes are not being set correctly. As you can see from the code above, the applicaiton context package was referencing the dba_role_privs view. Apparently, although this view is populated for database users, it is not populated for enterprise users.
    I tried changing the application context package to use invoker's rights and to query the session_roles view instead of the dba_role_privs view. Although this package sets the attributes correctly when called manually, it does not work when called from the logon trigger. That was an oops on my part, as I didn't realize initially that a PL/SQL procedure cannot be called with invoker's rights from a trigger.
    So, I am now wondering, is there another view that I could use in code called from a logon trigger to access the roles assigned to the enterprise user ? If not, is there a better way for me to approach this problem? From a maintenance standpoint, I like the idea of controlling site access from the LDAP directory service via role assignments. But, I am open to other ideas as well.
    Thank you!

    Hello,
    We have an Oracle 11g database with a table containing data from multiple sites (a SiteID field identifies the site for a record). Since application users can have access to different subsets of sites, we would like to use Oracle's Virtual Private Database feature to enforce row-level security on the table.
    I did a successful proof-of-concept with database users. I created a role for each site (example: USER_SITE_A, USER_SITE_B, ...), and then assigned the appropriate site roles to each database user. I then created a package (run via a logon trigger) which set application context attributes for each site. If the current database user has been assigned a role for a given site, then the corresponding attribute named "SITE_PRIVILEGE_SiteID" is set to 'Y'... otherwise, it is set to 'N'. Here is the code which worked to set application context attributes for database users:
    -- For each record in my RoleSitePrivileges table, set
    --   an attribute named 'SITE_PRIVILEGE_<SiteID>'.
    --   If the current user has been assigned a role matching
    --   the value in the 'RoleName' field, set the corresponding
    --   attribute to 'Y'... otherwise, set it to 'N'.
    FOR iPrivRec IN (SELECT RoleName, SiteID
                       FROM RoleSitePrivileges
                       ORDER BY SiteID)
       LOOP
          SELECT COUNT(*)
            INTO roleExists
            FROM dba_role_privs
            WHERE granted_role = UPPER(iPrivRec.RoleName)
              AND grantee = USER;
          IF roleExists > 0 THEN
             DBMS_SESSION.set_context(
                         namespace   => 'my_ctx',
                         attribute   => 'SITE_PRIVILEGE_' || iPrivRec.SiteID,
                         value       => 'Y');
          ELSE
             DBMS_SESSION.set_context(
                         namespace   => 'my_ctx',
                         attribute   => 'SITE_PRIVILEGE_' || iPrivRec.SiteID,
                         value       => 'N');
          END IF;
       END LOOP;To finish things off, I created a security policy function for the table which returns the following:
    RETURN 'SiteID IN (SELECT TO_NUMBER(SUBSTR(attribute, 15))
                         FROM session_context
                         WHERE attribute LIKE ''SITE_PRIVILEGE_%''
                            AND value = ''Y'')';This setup worked great for database users. I am now working to do a comparable proof-of-concept for enterprise users created in Oracle Internet Directory (OiD). I have Enterprise User Security (EUS) up and running with OiD, global roles created in the database, enterprise roles defined in EUS with global role assignments, and enterprise roles assigned to OiD users. The enterprise users are able to successfully login to the database, and I can see the appropriate global role assignments when I query the session_roles view.
    I tried using the same application context package, logon trigger, and security policy function with the enterprise users that I had used with the database users. Unfortunately, I found that the application context attributes are not being set correctly. As you can see from the code above, the applicaiton context package was referencing the dba_role_privs view. Apparently, although this view is populated for database users, it is not populated for enterprise users.
    I tried changing the application context package to use invoker's rights and to query the session_roles view instead of the dba_role_privs view. Although this package sets the attributes correctly when called manually, it does not work when called from the logon trigger. That was an oops on my part, as I didn't realize initially that a PL/SQL procedure cannot be called with invoker's rights from a trigger.
    So, I am now wondering, is there another view that I could use in code called from a logon trigger to access the roles assigned to the enterprise user ? If not, is there a better way for me to approach this problem? From a maintenance standpoint, I like the idea of controlling site access from the LDAP directory service via role assignments. But, I am open to other ideas as well.
    Thank you!

  • Applications with multi-users?

    Exist there downloadable example apllications witch use multi-users managed by sessions Beans.

    Thanks for your answer.
    Another questions...
    I have problems with my multi-users application (like you saw it). In fact, sessions mix between them.
    1) Do you know if there are any configuration for sessionBean to accept many users?
    2) Do you know if it's possible that tomcat or sun apllication server mix the sessions?
    Thanks

  • Configuring roles and users (adf security) application context wise.

    Dear All,
    I referred this tutorial (http://biemond.blogspot.com/2008/12/using-database-tables-as-authentication.html) which shows how to hook up adf security with database schema but at domain level which will be common to all applications in that domain. I want to make it different to each application. (i.e each application will use differene database schema for storing user credientials i.e enterprise roles,application roles and users.)
    Can any one please point me to proper way..
    Regards,
    Santosh
    jdev 11.1.1.2.0

    Dear Frank,
    <i>
    Instead you have a single identity management system and have the application policies being different for the applications.Using ADF Security, users and groups can have different privileges in different applications
    </i>
    suppose i have 3 applications that use adf security, the users will be common to all applications. right..?Roles and group can be different for applications.
    application polices means roles and group..?
    So how it(application polices) can be made different for applications? is it inbuilt or some configurations needed ?. Can you point me to some blogs or tutorials for more reference.
    Bet: Incase i hook up adf security with database schema.
    Regards,
    Santosh.

  • How to create a multi-user application

    Hello,
    I have an Application developed in Portal3.0.
    I have used portal30 schema where I created this application.
    Now, how can I make this application accessible to multiple users? where should I create these users/Roles? How can I give grants on some of my Application Objects(Forms/Reports/Dyn. Pages).
    Your help is greatly appreciated.
    Thank you.
    Sincerely
    Madhav

    Hi,
    If you look at your application from the Applications tab in the Navigator view, you should see a link called 'Grant Access'. If you click on that, you will have the option to give users access (manage - where they can build stuff; execute - where they can just run stuff that you build, etc.) to your application. You also have the option to publish your application as a provider in this screen, so that your forms/reports/etc. can show up as portlets.
    Hope this helps.
    -melissa

  • Global Application Contexts - Where to set Client Identifier?

    Hi,
    I am trying to use global application contexts as part of an implementation of fine grain access control.
    This is within an eBusiness Suite environment, specifically CRM, so is a multi-tiered environment.
    Users access both Forms based screens and OA framework screens.
    I believe I need to use global application contexts as users may have multiple database sessions.
    Also, all users will login using the same database login account.
    Provided I can set a unique identifier for a user that persists throughout all their sessions I can make use of the username and client_id parameters of set_context, below:-
    DBMS_SESSION.set_context (namespace => 'XXUOM_CONTEXTS',
    attribute => 'EXEMPT_FROM_VPD_POLICIES',
    VALUE => l_exempt,
    username => USER,
    client_id => pi_user_id);
    The difficulty I am having is finding a suitable place to set the client identifier.
    I am not sure if the value is being cleared by some other code or if the value isn't being set in all sessions.
    I am using:-
    DBMS_SESSION.set_identifier (pi_user_id)
    That I call from after insert triggers on either tables icx_sessions or fnd_logins.
    However, the client identifier is always null when I query it from within the application, via:-
    SELECT SYS_CONTEXT ('USERENV', 'CLIENT_IDENTIFIER') from dual
    If I set the value via a personalisation rule within a Form, then the value remains.
    I would greatly appreciate it if someone can advise me on where I am going wrong.
    Andy

    It's a different patch.
    The patch support have given me is 9275708, FND_GLOBAL.ORG_NAME RETURNS ENGLISH, EVEN WHEN SESSION LANGUAGE IS NOT.
    This patch has been superceded by 12875860, HR SECURITY PROFILE IS NOT SET CORRECTLY.
    So we have applied patch 12875860.
    I've tried to find out from support what happened to the original patch and why it was removed/deleted rather than superceded.
    I have not found it possible to find out what each of these patches does. There's very little documentation on them.
    I have raised an SR.
    The details are 3-4943519401: How to add DBMS_SESSION.SET_IDENTIFIER() to FND_GLOBAL.INITIALIZE.
    The results of:
         select fnd_profile.value('FND_CONNECTION_TAGGING') from dual
         gives nothing on our Release 11 environment.
    select * from fnd_profile_options where profile_option_name = 'FND_CONNECTION_TAGGING';
    gives nothing.
    On Release 12, the results are:
         select fnd_profile.value('FND_CONNECTION_TAGGING') from dual;
         ENABLED
         select * from fnd_profile_options where profile_option_name = 'FND_CONNECTION_TAGGING';
         returns a record.
    Many thanks for continuing to look into this for me.
    Andy

  • File Discrepancies for Multi Users

    Hi ...
    We are running RH7 and RSC3.1 with 3 users - We identified
    (only yesterday) that after User 1 had deleted one topic file from
    Project Manager and added several others ... User 2 and 3 had
    broken links for these topics.
    We are able to update existing topics by one user, who check
    in, then user 2 and 3 can get the latest version and instantly view
    the changes - lovely!! Exactly what we would expect ...
    But the same is not occurring when we remove or add entire
    topics to both the Project Manager and the TOC ...
    User 2 and 3 see the topics in the TOC with the dreaded red
    cross through them ... and have to try and locate the file or
    restore broken links etc ... to get their view of the project in
    sync with User 1. This seems to defeat the whole purpose of being
    able to have a multi user authoring environment????
    A major concern of this problem appears to be the risk of
    undoing each others work by potentially restoring files that
    another user intended to remove ...
    Is anyone else experiencing similar issues ... we are in a
    big organisation and are very restricted in terms of our ability to
    access the servers etc ... but I want to know if there is something
    we should be checking or doing differently from an application
    perspective? Any advice or ideas are greatly appreciated...
    Many thanks ...
    Frustrated!

    Hi Fi@qldpol, and welcome to the board. With your situation,
    there are two likely possibilities:
    1. Was your project added to source control via RoboHelp, or
    was it initially added using RoboSource Control? If it was added
    from RoboSource Control, then that is the problem.
    2. If #1 is not the problem, then you might be having
    problems with some of the users' CPD files. First, have everyone
    make backups of the local version of their project (the files
    actually residing on their PCs). Then have User 2 and User 3 delete
    their copy of the project, and replace it with a copy of User 1's
    local files. Before they open the project, they should delete the
    cpd and pss files. After they delete those files, they can open the
    project as usual and let the cpd file rebuild. We have to do this
    every so often with some of our projects to get everyone
    synchronized.
    Hope that helps.
    G

  • How to set Multi User Environment in the weblogic 5.1 and 6.1 server..(Urgently)

    Hi all,
    I need to know how to set Multi User Environment in the weblogic 5.1
    properties file..
    Here my question is..:)
    1) I have a database with multiple users and having different privileges
    for the users.. and i need to use all the privileges when user aceess
    the database through weblogic server connectionPool.
    2)According to the user privileges i need access the database tables
    content and gives the frontEnd(jsp).
    3)How to modify dynamically weblogic.properties file in the weblogic
    5.1.
    If anybody having idea reg. this issues pl...help me..
    Thanks in advance
    Chandu([email protected],[email protected])

    Hi. A JDBC connection pool is a set of identical, interchangeable, pre-made
    connections, and the controls to make sure only one user uses a particular
    connection at any one time. If you want to have different DBMS users, you can
    have a separate pool for each DBMS user, which may contain as many or few
    connections as you want. Some applications has a pool for the accounting
    applications, and another for the sales applications etc. Some do have a
    separate pool for john, jane, joe etc, each with one connection. Pools
    can be created and destroyed dynamically using the dynamic pool API.
    Joe
    softstar wrote:
    >
    Hi all,
    I need to know how to set Multi User Environment in the weblogic 5.1
    properties file..
    Here my question is..:)
    1) I have a database with multiple users and having different privileges
    for the users.. and i need to use all the privileges when user aceess
    the database through weblogic server connectionPool.
    2)According to the user privileges i need access the database tables
    content and gives the frontEnd(jsp).
    3)How to modify dynamically weblogic.properties file in the weblogic
    5.1.
    If anybody having idea reg. this issues pl...help me..
    Thanks in advance
    Chandu([email protected],[email protected])

  • Application Context - VPD

    APEX: 2.0.0.00.49
    DB: 10R2
    I am using table based security. Upon login, I am setting a number of different context variables (e.g., sessionid, userid, name, etc). They are also being set in my application (F100_SESSIONID, F100_USERID, etc).
    Recently, our company decided to host another company's data. Not having EE, I decided to add a column to the appropriate tables and then create views accessible through the application. Each view would have a predicate:<BR>
    WHERE companycode = SYS_CONTEXT( 'PFS_CTX', 'COMPANYCODE' )<br>
    Now, after submit, (I haven't tested every single page), session state seems to be lost.<br>
    Debug info before Submit:<br>
    0.00: S H O W: application="100" page="26" workspace="" request="" session="12483598699829578467"
    0.00: ...Language derived from: FLOW_PRIMARY_LANGUAGE, current browser language: en-us
    0.00: alter session set nls_language="AMERICAN"
    0.00: alter session set nls_territory="AMERICA"
    0.00: NLS: CSV charset=WE8MSWIN1252
    0.00: ...Setting NLS Decimal separator="."
    0.00: ...Setting NLS Group separator=","
    0.00: ...Setting NLS date format="DD-MON-RR"
    0.00: NLS: Language=en-us
    0.00: Application 100, Authentication: CUSTOM2, Page Template: 653625525474071
    0.02: ...Supplied session ID can be used
    0.02: ...Application session: 12483598699829578467, user=USER_PFS
    0.02: ...Determine if user PFS_ADMIN with SGID 635206529335328 can develop application 100 in workspace 635206529335328
    0.02: Fetch session state from database
    0.02: Fetch session header information
    0.02: ...fetch page attributes: f100, p26
    0.02: Branch point: BEFORE_HEADER
    0.03: Fetch application meta data
    0.03: Computation point: BEFORE_HEADER
    0.03: Processing point: BEFORE_HEADER
    0.03: Show page template header
    0.03: Computation point: AFTER_HEADER
    0.03: Processing point: AFTER_HEADER<br>
    The Select List I have renders correctly. The query behind the Select List is:<br>
    SELECT projectname, projectid
    FROM pnet_projects<br>
    The view text is:<br>
    SELECT projectid, projectname,...
    FROM vw_projects
    WHERE companycode = SYS_CONTEXT( 'PFS_CTX', 'COMPANYCODE' )<BR>
    After Submit, the Select List is empty and here is the Debug info:<br>
    0.00: A C C E P T: Request="SUBMIT"
    0.00: Fetch application info
    0.00: wwv_flow.g_flow_language_derived_from=FLOW_PRIMARY_LANGUAGE: wwv_flow.g_browser_language=en-us
    0.00: alter session set nls_language="AMERICAN"
    0.00: alter session set nls_territory="AMERICA"
    0.00: NLS: CSV charset=WE8MSWIN1252
    0.00: ...Setting NLS Decimal separator="."
    0.00: ...Setting NLS Group separator=","
    0.00: ...Setting NLS date format="DD-MON-RR"
    0.02: Fetch session state from database
    0.02: ...Check instance 12483598699829578467 owner
    0.02: ...Fetch iconbar, page, computation, process, ...
    0.02: Fetch session header information
    0.02: ...fetch page attributes: f100, p26
    0.02: ...Check security schemes
    0.02: Save form items and p_arg_values
    0.02: ...P26_PROJECTID session state saving same value: "NONE"
    0.02: ...P26_TIMEIN session state saving same value: ""
    0.03: ...P26_PERSONID session state saving same value: ""
    0.03: Processing point: ON_SUBMIT_BEFORE_COMPUTATION
    0.03: Branch point: BEFORE_COMPUTATION
    0.03: Computation point: AFTER_SUBMIT
    0.03: Perform Branching for Tab Requests
    0.03: Branch point: BEFORE_VALIDATION
    0.03: Perform validations:
    0.03: Display inline error messages that are a result of failed validations.
    0.03: S H O W: application="100" page="26" workspace="" request="" session="12483598699829578467"
    0.03: NLS: Language=en-us
    0.03: Application 100, Authentication: CUSTOM2, Page Template: 653625525474071
    0.05: ...Supplied session ID can be used
    0.05: ...Application session: 12483598699829578467, user=USER_PFS
    0.05: ...Determine if user PFS_ADMIN with SGID 635206529335328 can develop application 100 in workspace 635206529335328
    0.05: ...fetch page attributes: f100, p26
    0.05: Branch point: BEFORE_HEADER
    0.05: Fetch application meta data
    0.05: Computation point: BEFORE_HEADER
    0.05: Processing point: BEFORE_HEADER
    0.05: ......do not perform process because inline validation condition found.
    0.05: ...Recompute field lables for fields in error.
    0.05: Show page template header   
    0.05: Computation point: AFTER_HEADER
    0.05: Processing point: AFTER_HEADER<br>
    In the ACCEPT portion, there's a line "Fetch session state from database" which I am guessing gets the Application Context. There is no such line in the SHOW section.<br><br>
    I have used Branch to Page Identified by Item and a Branch to Page or URL. Same result.<br><br>
    Does anyone have a suggestion as to how I should proceed? Can I use APEX/Application Context in this manner?<br><br>
    chet

    FUNCTION login
      (p_username IN VARCHAR2,
       p_password IN VARCHAR2,
       p_systemcode IN VARCHAR2 DEFAULT 'PFS') RETURN NUMBER
    IS
      l_sessionid NUMBER(15);
      l_password PERSON_SYSTEMS_TAB.PASSWORD%TYPE;
      l_personsystemid PERSON_SYSTEMS_TAB.PERSONSYSTEMID%TYPE;
      l_personid PERSON_SYSTEMS_TAB.PERSONID%TYPE;
      l_passwordexpires PERSON_SYSTEMS_TAB.PASSWORD_EXPIRES%TYPE;
      l_accountlocked PERSON_SYSTEMS_TAB.ACCOUNTLOCKED%TYPE;  
      l_expiredate DATE;
      l_entityid ENTITY_TAB.ENTITYID%TYPE;
      l_companyname VARCHAR2(150);
      l_companycode VARCHAR2(30);
    BEGIN
      SELECT password, personsystemid, personid, password_expires, accountlocked, date_expired, companycode
      INTO l_password, l_personsystemid, l_personid, l_passwordexpires, l_accountlocked, l_expiredate, l_companycode
      FROM vw_person_systems
      WHERE systemcode = p_systemcode
        AND date_expired IS NULL
        AND UPPER( username ) = UPPER( p_username );
      IF l_password = p_common.hash(p_username, p_password) THEN --successful login
      --1 create session
      --2 set app context
      --3 return sessionid
        l_sessionid := create_session( l_personsystemid );
        l_companyname := p_common.get_company_name( l_personid ); 
        l_entityid := p_common.get_entityid( l_personid );
        p_ctx.set_sessionid( l_sessionid );        
        p_ctx.set_context( 'NAME', p_login.get_name( l_personid ) );
        p_ctx.set_context( 'PERSONSYSTEMID', l_personsystemid );
        p_ctx.set_context( 'PERSONID', l_personid );
        p_ctx.set_context( 'COMPANYID', SUBSTR( l_companyname, 1, INSTR( l_companyname, ':' ) - 1 ) );
        p_ctx.set_context( 'COMPANYNAME', SUBSTR( l_companyname, INSTR( l_companyname, ':' ) + 1, LENGTH( l_companyname ) ) );
        p_ctx.set_context( 'SESSIONID', l_sessionid );
        p_ctx.set_context( 'EMAILADDRESS', p_username );
        p_ctx.set_context( 'ENTITYID', l_entityid );
        p_ctx.set_context( 'COMPANYCODE', l_companycode );
      END IF;
      RETURN l_sessionid;
    EXCEPTION
      WHEN no_data_found THEN
        raise_application_error(-20002, 'invalid username');
    END login;<br>
    None of this code has changed in quite some time. The only thing that changed was the view reference from APEX. This seems to occur only when the page is submitted (with or without validations).

  • Different applications context in iStore

    Vi have implemented severel minisites in iStore and have a question regarding using different context for different minisites.
    Is it possible to configure the iStore in a way that different minisites can have different applications context?
    For instance:
    Insted of using common URL like
    http://server.domain.com/OA_HTML/ibeCZzpHome.jsp?a=b
    We wnat to use
    http://server.domain.com/OA_DOGS/ibeCZzpHome.jsp?a=b
    http://server.domain.com/OA_CATS/ibeCZzpHome.jsp?a=b
    So OA_DOGS always refer to a perticular miniSite (minisite=10020)
    and OA_CATS always refer to another miniSite (minisite=10021)
    Thanks Mayu

    you were not asking for a seperate ministed for different users instead ur asking for a different applications under one single domain.
    but we can have any number of minisites to address your need, just need to create them using iStore Admin responsibility, if you want to restrict some of the users to access to some of the minisites only then go for responsibility key / operating unit differentiation or see CRM Administration - Roles and Responsibilites to implement the requirement.
    there you can define 2 different responsibilities like IBE_CUSTOMER_DOGS who can only access the sites you allow him in iStore Admin, IBE_CUSTOMER_CATS allowed to see only minisites meant for CATS .
    thanks
    Praveen Reddy

  • Report Export - No data when query based on Application Context

    I updated my Query Region source to use a Global Application Context and now the Report Export (to .csv) download has no data. This appears to run the query again in under a different session_id perhaps(?)
    In a before header process I set the session_id to access a couple of date values set by the user via LOVs - the 'Search' button and an After Submit Process sets the context values which are accessed in the where clause, i.e
    where date_attribute between to_date( SYS_CONTEXT('MY_CTX', 'START_DATE'), 'dd-Mon-yyyy')
    and to_date( SYS_CONTEXT('MY_CTX', 'END_DATE'), 'dd-Mon-yyyy')
    If you know any solution or alternative approach I'd be very grateful for your tips. I like Apex because you can leverage core Oracle database technology but then in some case you do hit these little troubles!
    Thanks
    Craig

    Thanks for the link to the posts.
    I considered the Security Attribute but thought that was somewhat inappropriate for just the one page I am setting the context; I understand the Security Attribute function would set 'My_Ctx' values on all page requests.

Maybe you are looking for

  • Is it possible to generate outbound idocs for FI invoices? How?

    Is it possible to generate Outbound idocs for FI invoices? How? or else i have to write program to get data in file and pass it to translator. Please help.

  • Cross app copy and paste stoped working with 5.1 any suggestions?

    After over the air upgrade to 5.1 on Verizon cross app copy and paste stopped working. Copy in one app no past option in the other.  I have tried power cycling to no avail. Any suggestions prior to restoring the phone with iTunes?

  • Security Settings For Deleting Process Instance Information

    Hi there, We are currently having issues with our more "novice" users deleting "unsuccessful" or "error" process instances. Are their any security settings we could use for this type of user profile that would not allow them to delet these instances?

  • Block corruption in sys schema

    hi, I have a table in sys schema (sorry for creating a table in sys schema) and now it says one block is corrupted while selecting from it. I don't have a backup of the table. Is there any option to repair it without shutting down the database? (i ca

  • Need to uninstall Epson Scanner Monitor application

    This is some kind of add-on for my Epson Perfection v200 Photo scanner. I can uninstall the driver, but the Scanner Monitor won't uninstall because it says it's open. The scanner USB is unplugged. I can't figure out where this exists to close it. I c