Creating application context - urgent

Hi all,
can any body help me out??
my env is oas 10.1.2 with infra and midtier
1.how to create applicationc context to my application which is deployed in midtier
2.what is the role of application-client.xml
it would be a great help if any body reply me.
Thanks
purandhar

Hi,
Please see these documents.
Note: 340945.1 - adbldxml.pl fails with java.lang.Exception
Note: 404762.1 - Java.Lang.Nullpointerexception
Note: 389649.1 - Adbldxml.Pl Fails With Java.Lang.Outofmemoryerror
Thanks,
Hussein

Similar Messages

  • Multiple values in 1 application context

    All, I'm trying to return multiple values from a query and store them in an application context.
    I have an employee that can be a part of multiple divisions. I already captured emp_id:
    dbms_session.set_context('COMPANY', 'emp_id', emp_id);
    but also want to capture division_id for the person. Most people will only have 1 division_id, but some will have multiple division_id's.
    What's the best way for me to capture multiple numeric values and store them in an application context like this.
    I'm trying to set up VPD policies and don't have to have to reissue a query every time I need to access the division_id.
    Thanks,
    Jon.

    One option would be to store a comma-delimited list of the division_ids in the context and then your VPD filter can use this and the TABLE function to limit the rows:
    sql>create or replace type NumberTable as table of number;
      2  /
    Type created.
    sql>create or replace function f_number_table(
      2    p_list       in  varchar2,
      3    p_delimiter  in  varchar2 default ',')
      4    return numbertable
      5  is
      6    v_string  long := p_list || p_delimiter;
      7    v_pos     pls_integer;
      8    v_data    numbertable := numbertable();
      9  begin
    10    loop
    11      v_pos := instr(v_string, p_delimiter);
    12      exit when (nvl(v_pos, 0) = 0);
    13      v_data.extend;
    14      v_data(v_data.count) := trim(substr(v_string, 1, v_pos - 1));
    15      v_string := substr(v_string, v_pos + 1);
    16    end loop;
    17    return (v_data);
    18  end f_number_table;
    19  /
    Function created.
    Then, in your VPD package:
    -- build a list of the division_ids by looping through a cursor
    -- set the context using this list of division_ids:
    dbms_session.set_context('company', 'div_id', '10,20');
    -- later, you would replace the literal value below with a call to sys_context to retrieve it
    sql>select empno, ename, deptno
      2    from emp
      3   where deptno in (select *
      4                      from table(f_number_table('10,20')));
        EMPNO ENAME         DEPTNO
         7782 CLARK             10
         7839 KING              10
         7934 MILLER            10
         7369 SMITH             20
         7876 ADAMS             20
         7902 FORD              20
         7788 SCOTT             20
         7566 JONES             20
    8 rows selected.

  • How to create a context node for "IBHeader" at the view "BuPaIBaseDetail"?

    hi, experts
    for the requirement, i have to get data from a root BO-IBHeader in the view of "BuPaIBaseDetail".But the view already has IBHeader's child object-"IBComponent", whose controller class is "CL_CRM_IC_BUPACONTROLLER_CN08", how can i create the context node for "IBHeader"?
    angerly wait for the answer. thanks a lot

    If you right click on an empty container or a container with an object in it, it has the same available choices to select. However, if you create a blank property node on the block diagram, and wire up the .net object to it, you will see a much different list of properties.
    So, the property node created from right clicking a .NET container will be for that container, even if there is an object inside. To create a property node for the object, you must wire the .NET object to an empty property node on the block diagram.
    Chris Van Horn
    Applications Engineer

  • How to create dynamic context based on a structure defined in the program?

    Hi Experts,
             I need to create a dynamic context based on a structure wa_struc which i have define programatically.
    When I pass wa_struc to structure_name parameter of create_nodeinfo_from_struc, i get a runtime error:
    "Parameter STRUCTURE_NAME contains an invalid value wa_struc."
    How to create dynamic context based on a structure defined in the program?
    I have written the code like this:
    TYPES: BEGIN OF t_type,
                v_carrid TYPE sflight-carrid,
                v_connid TYPE sflight-connid,
             END OF t_type.
      Data:  i_struc type table of t_type,
             wa_struc type t_type.
      data: dyn_node   type ref to if_wd_context_node.
      data: rootnode_info   type ref to if_wd_context_node_info.
      rootnode_info = wd_context->get_node_info( ).
      clear i_struc. refresh i_struc.
      select carrid connid into corresponding fields of table i_struc from sflight where carrid = 'AA'.
    cl_wd_dynamic_tool=>create_nodeinfo_from_struct(
      parent_info = rootnode_info
      node_name = 'dynflight'
      structure_name = 'wa_struc'
      is_multiple = abap_true ).
    dyn_node = wd_context->get_child_node( name = 'dynflight' ).
    dyn_node->bind_table( i_struc ).
    Thanks
    Gopal
    Message was edited by: gopalkrishna baliga

    Hi Michelle,
              First of all Special thanks for your informative answers to my other forum questions. I really appreciate your help.
    Coming back to this question I am still waiting for an answer. Please help. Note that my structure is not in a dictionary.
    I am trying to create a new node. That is
    CONTEXT
    - DYNFLIGHT
    CARRID
    CONNID
    As you see above I am trying to create 'DYNFLIGHT' along with the 2 attributes which are inside this node. The structure of the node that is, no.of attributes may vary based on some condition. Thats why I am trying to create a node dynamically.
    Also I cannot define the structure in the ABAP dictionary because it changes based on condition
    I have updated my code like the following and I am getting error:
    TYPES: BEGIN OF t_type,
    CARRID TYPE sflight-carrid,
    CONNID TYPE sflight-connid,
    END OF t_type.
    Data: i_struc type table of t_type,
    dyn_node type ref to if_wd_context_node,
    rootnode_info type ref to if_wd_context_node_info,
    i_node_att type wdr_context_attr_info_map,
    wa_node_att type line of wdr_context_attr_info_map.
    wa_node_att-name = 'CARRID'.
    wa_node_att-TYPE_NAME = 'SFLIGHT-CARRID'.
    insert wa_node_att into table i_node_att.
    wa_node_att-name = 'CONNID'.
    wa_node_att-TYPE_NAME = 'SFLIGHT-CONNID'.
    insert wa_node_att into table i_node_att.
    clear i_struc. refresh i_struc.
    select carrid connid into corresponding fields of table i_struc from sflight where carrid = 'AA'.
    rootnode_info = wd_context->get_node_info( ).
    rootnode_info->add_new_child_node( name = 'DYNFLIGHT'
    attributes = i_node_att
    is_multiple = abap_true ).
    dyn_node = wd_context->get_child_node( 'DYNFLIGHT' ).
    dyn_node->bind_table( i_struc ).
    l_ref_interfacecontroller->set_data( dyn_node ).
    But now I am getting the following error :
    The following error text was processed in the system PET : Line types of an internal table and a work area not compatible.
    The error occurred on the application server FMSAP995_PET_02 and in the work process 0 .
    The termination type was: RABAX_STATE
    The ABAP call stack was:
    Method: IF_WD_CONTEXT_NODE~GET_STATIC_ATTRIBUTES_TABLE of program CL_WDR_CONTEXT_NODE_VAL=======CP
    Method: GET_REF_TO_TABLE of program CL_SALV_WD_DATA_TABLE=========CP
    Method: EXECUTE of program CL_SALV_WD_SERVICE_MANAGER====CP
    Method: APPLY_SERVICES of program CL_SALV_BS_RESULT_DATA_TABLE==CP
    Method: REFRESH of program CL_SALV_BS_RESULT_DATA_TABLE==CP
    Method: IF_SALV_WD_COMP_TABLE_DATA~MAP_FROM_SOURCE_DATA of program CL_SALV_WD_C_TABLE_V_TABLE====CP
    Method: IF_SALV_WD_COMP_TABLE_DATA~MAP_FROM_SOURCE of program CL_SALV_WD_C_TABLE_V_TABLE====CP
    Method: IF_SALV_WD_COMP_TABLE_DATA~UPDATE of program CL_SALV_WD_C_TABLE_V_TABLE====CP
    Method: IF_SALV_WD_VIEW~MODIFY of program CL_SALV_WD_C_TABLE_V_TABLE====CP
    Method: IF_SALV_WD_COMPONENT~VIEW_MODIFY of program CL_SALV_WD_A_COMPONENT========CP
    -Gopal
    Message was edited by: gopalkrishna baliga

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

  • Can't create Application Role in Obiee 11g Enterprise Manager

    Hi All,
    I was working on obiee11g enterprise manager. I created some of the groups in weblogic console. Now I wanted to create application roles in enterprise manager for those groups. I am surprised that, the "*Create*" button is inactive on the application role page of enterprise manager. I only i could see tthe actives ones "*Create Like*", "*Edit*" and "*Delete*".
    Please assist shoud I need any additional configuration for the same.urgent!!
    Thank you in advance,
    BK.

    Click on Create Like button
    Then click cancel on the Create Like dialog box
    Go back to the Create button, it now works
    But if you log out and log back in, the Create button is disabled again
    so may repeat the above process of accessing the 'Create Like' button first to enable the Create button
    < Bug:13983399> CREATE BUTTON IS DISABLED IN FUSION MIDDLEWARE CONTROL IN OBIEE 11.1.1.6.0 ENV
    Please mark helpful or correct if answered.
    Thanks,
    - A.Y

  • How to create a context menu which appears on right click

    Hello Experts,
    I want to create a context menu which should appear on the right click of a mouse anywhere on the screen.
    I have seen this functionality in one of the sap applications, and i guess this is an inbuild functionality in Webdynpro for ABAP but in WebDynpro Java i haven't found any such inbuild functionality.
    Does anybody have any idea about it ?
    Regards,
    Amol

    Context menus are not supported in NW04 and NW04s, they will be available in the next major release.
    Armin

  • How to create a context element

    Hai,
    How can i create a context element for a view dynamically.
    regards,

    Hi,
    Context element or context attribute?
    For context element use appropriate method in your IWDNode implementation and after creation call add method of node.
    For context attribute - see appropriate tutorial :  https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webdynpro/tutorial on dynamic programming of web dynpro applications - 17.htm
    Best regards, Maksim Rashchynski.

  • Create an context menu item to open a file on a specific display

    Hello,
    I have an external display connected to my MBP, but I don't always need to use it so it's not always on. I'd like to have a way to open a file (or application) on a specified display on a case by case basis. I know that I can assign an application to open on a specific display by right-clicking on the app in the dock and selecting options->assign to. The problem with this is that it's a global change. When I'm working on school work, I usually like to have reference material (pdfs, wepages, etc) open on the external display while I'm working in Word on the MBPs monitor.
    What I'd like to be able to do is right click on the file (or app) and use a context menu item to open the item on a specific display. Does anyone know of an automator action/applescript/terminal command to create a context menu item like this?
    Thanks.

    I use "Open Terminal Here" script for that:
    http://www.entropy.ch/software/applescript/

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

  • 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

  • Required application context reporting is not available

    I've just installed HPM 11.1.1.1 (product: ESSBASE/foundation/planning/Financial reporting) and I'm now testing Financial Reporting.
    I created a financial report as indicated in http://oraclebizint.wordpress.com/2008/06/07/hyperion-financial-reporting-getting-started
    I can run this report in Financial reports (PDF view)
    1. But I cannot run the report in HTML (Hyperion Workspace) : error "Required application context reporting is not available"
    2. Besides I notice that in Workspace -> explorer the voice File -> Import -> "Financial Reports" is missing.
    Maybe something was wrong in installation, but I did it twice .... and Diagnositcs reports no errors.
    So, is there some more activity to be done on Workspace/Financial reports so that integration of these two products work correctly ??
    (Note: installing on Microsoft windows 2003 server - deploying on Tomcat and IIS6 web server)
    Regards
    Marina

    This one has frustrated me to no end as well! One would think that when you install FR/WA they would automatically register themselves with Workspace as part of their configuration process (and one would be wrong).
    The solution is to go back and run the configuration tool again. The only thing you have to select this time is Foundation Services... Workspace... Configure Web Server, then restart the two Workspace services.

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

  • Code to create dynamic context elements

    Dear Guys,
    I have create a dynamic text edit using the following code in abap webdynpro.
    I have created a transparent container named PREREPLY set to grid layout and created a context REPLY type string and in WDDOMODIFYVIEW view i have written the following 
    data : lr_container type ref to cl_wd_uielement_container,
             lr_comment type ref to cl_wd_text_edit.
    lr_container ?= view->get_element( 'PREREPLY' ).
    lr_comment = cl_wd_text_edit=>NEW_TEXT_EDIT( BIND_VALUE = 'REPLY'
                                                                                    COLS = 70
                                                                                    ID = 'PREREPLIES2'
                                                                                    STATE = 01 ).
    lr_comment->BIND_VALUE( 'REPLY' ).
    cl_wd_grid_data=>new_grid_data( element = lr_comment ).
    lr_container->ADD_CHILD( lr_comment ).
    i am able to see a new textedit when i run my application.
    Now I want to create the context also dynamically, because i will not know how many text edit will be there. Based on the number of lines in the internal table i want the create the context and textedits dynamically.
    Give me the code to create context dynamically in abap webdynpro.
    Regards,
    Shamila

    Hi Sharmila,
    Just go through this sample code snippet which does the following.
    1) It dynamically creates a context node named CHILD and then creates 4 attributes ATTR1, ATTR2,..
    2) Creates a GROUP UI element with a caption attached to it
    3) Create 4 textEdit UI elements bound to the 4 context attributes created earlier and embed them within the group
    METHOD wddomodifyview.
      DATA: lr_container TYPE REF TO cl_wd_uielement_container,
            lr_group TYPE REF TO cl_wd_group,
            lr_caption_group TYPE REF TO cl_wd_caption,
            lr_textedit TYPE REF TO cl_wd_text_edit,
            lr_node_info TYPE REF TO if_wd_context_node_info,
            lr_node TYPE REF TO if_wd_context_node,
            lr_element TYPE REF TO if_wd_context_element,
            lr_attribute_info TYPE wdr_context_attribute_info,
            content TYPE string,
            attribute_name TYPE string,
         lv_textview_id TYPE string.
      CHECK first_time = abap_true.
      lr_node_info = wd_context->get_node_info( ).
      CALL METHOD lr_node_info->add_new_child_node
        EXPORTING
          name                         = 'CHILD'
          is_mandatory                 = abap_false
          is_multiple                  = abap_true
          is_multiple_selection        = abap_true
          is_singleton                 = abap_false
          is_initialize_lead_selection = abap_true
          is_static                    = abap_false
        RECEIVING
          child_node_info              = lr_node_info.
      lr_container ?= view->get_root_element( ).
      cl_wd_matrix_layout=>new_matrix_layout( container = lr_container ).
      lr_group = cl_wd_group=>new_group( id = 'GROUP' ).
      lr_group->set_width( value = '50%' ).
      cl_wd_matrix_layout=>new_matrix_layout( container = lr_group ).
      cl_wd_matrix_head_data=>new_matrix_head_data( element = lr_group ).
      lr_caption_group = cl_wd_caption=>new_caption( text = 'Group Header' ).
      lr_group->set_header( the_header = lr_caption_group ).
      DO 4 TIMES.
        MOVE sy-index TO attribute_name.
    ** Preparing the data to be displayed in the textEdit i.e, data for context attribute
        CONCATENATE 'This'
                    'is the'
                    'data for textEdit number: '
                     attribute_name  INTO content SEPARATED BY cl_abap_char_utilities=>newline.
        CONCATENATE 'ATTR'
                    attribute_name INTO attribute_name.
    ** Condense the ID to ensure that the format is consistent with SAP standard
        CONDENSE attribute_name NO-GAPS.
    ** Prepare properties of attribute & add to context node CHILD
        lr_attribute_info-name = attribute_name.
        lr_attribute_info-type_name = 'STRING'.
        lr_attribute_info-value_help_mode = '0'.
        lr_node_info->add_attribute( EXPORTING attribute_info = lr_attribute_info ).
        lr_node = wd_context->get_child_node( name = 'CHILD' ).
        lr_element = lr_node->create_element( ).
        lr_element->set_attribute( name  = attribute_name
                                   value = content ).
        lr_node->bind_element( new_item             = lr_element
                               set_initial_elements = abap_false ).
    ** Compute the attribute path dynamically i.e, like CHILD.ATTR1
        CONCATENATE 'CHILD.'
                    attribute_name INTO attribute_name.
        CONDENSE attribute_name NO-GAPS.
        lr_textedit = cl_wd_text_edit=>new_text_edit( cols  = 10
                                                      rows  = 5
                                                      width = '90%'
                                                      bind_value = attribute_name ).
        cl_wd_matrix_head_data=>new_matrix_head_data( element = lr_textedit ).
        lr_group->add_child( the_child = lr_textedit ).
      ENDDO.
    lr_container->add_child( the_child = lr_group ).
    ENDMETHOD.
    Hope that you can manage to go through this & try change it to suit your requirement.
    Regards,
    Uday

  • FGAC Application context problem

    I create a context name 'test_ctx' that I set using a procedure in a package. I plan to call this procedure in a middle tier. During testing, when I connect to the Db, it seems that the context has values in it even when I did not call the procedure. Even when I disconnected from the Db and then reconnected after a few minutes, it seems that the context is still set. There is no other application or user using this context. Can anyone tell me what is happening? Thanks.

    Hi there
    * An application context can be most easily understood as the root folder your application starts from, e.g.
    You are running a Tomcat server on your local machine and have deployed 2 applications to there: myapp1.war and myapp2.war. Those 2 apps would be hosted at http://localhost/myapp1/ and http://localhost/myapp2/ respectively.
    Another way of looking at it is that application contexts are used to separate different applications running on the same web server.
    * servlet mapping is what you need to do in order to map requests to your servlet container to the actual servlets themselves.
    e.g. a call to http://locahost/my_webapp/my_servlet might actually map to a servlet called MyFirstServlet which in turn is represented by your deployed MyFirstServlet.class
    There is of course a lot more to both of these, I suggest you start with the tutorial on Servlet development here on the Sun site.
    Cheers,
    Martin (aka Karianna)
    Edited by: karianna on Dec 10, 2007 8:16 AM

Maybe you are looking for

  • 32-bit Vista Home Premium - Explorer.exe visual basic library C++ runtime crash

    Friends, I have a weird Explorer.exe crash going on when attempting to use Windows Explorer to access my iTunes Movies folder. Background: Running 32-bit Windows Vista Home Premium (SP2) on a Gateway GM5664 Desktop (2.3 GHz Quad-core AMD CPU with 3 G

  • Advice on powering up a N40 external with a Mac SE

    Hey everyone, My dad's first computer was a Macintosh SE. Sometime in the 1990's, the computer went kaput, but we were able to find a replacement. Well, unfortunately my dad is no longer alive, and recently my mom began thinking about selling the Mac

  • I updated itunes (10/12/13) to imac and now itunes will not open

    I updated my imac with the new update for itunes (10/12/13).  Now iTunes will not open at all

  • 2 nodes RAC with Oracle 10g on Windows 2000 server

    Hi at all. I want to manage a cluster having 2 nodes on windows 2000 server each of them with Oracle 10g. I have VMWare 5.0. Someone can suggest me a detailed tutorial how to start and built it? Thank you very much for your answers. Saverio Sergio Mo

  • BPM Webservice Execution Timeout

    Hi All, i'm using an automated activitiy to call a webservice from BPM. Apparently there is also a timeout for webservice execution like in WSNavigator. Is BPM using the same value (60 sec)? Is there a possibility to edit this value to extend the web