Enqueue with multiple secondary tables

I have an enqueue object that locks one primary table and several related secondary tables.  When I call the FM using the key of the primary table I notice that I cannot open any secondary table record in change mode in an alternative transaction.  It's as if each secondary table has been entirely locked.
I was expecting that only those records in any secondary table whose foreign key matches the key of the primary table would be locked.
How do I lock only the set of related records based on the key of the primary table without having to loop at each related secondary table record and locking these in turn?  I mean, I know I could do this, but is that really the only way?
How does SAP manage this problem?

Sandra
Ok, so I created the tables and locks from scratch.  The only thing I did differently was to run the enqueue FM's via SM37 so I don't have to create 2 new test programs.  I am still getting the same results as before.
This is my dummy Table T1 (key = ZF1)
ZF1    |    ZF2    |   ZF3      
0001   |    A      |    AA    
0002   |    B      |   BB   
0003   |    C      |   CC   
0004   |    D      |   DD 
0005   |    E       |   EE
This is my dummy Table T2 (key = ZF4 + ZF1; FK = ZF1)
ZF4     |   ZF1      |    ZF5       
2001    |   0001    |     AA        
2002    |   0001    |     AB        
2003   |    0002    |     AC        
2004    |   0001    |     AD        
2005    |   0003    |     AE        
2006    |   0004    |     AF        
2006    |   0005    |     AG        
2007    |   0005    |     AH        
There are also 2 enqueue FM's.  E1 locks T1 & T2; E2 locks only T2.  When I execute E1 where T1-ZF1 = 0001 I expect that the foreign key relationship in T2 would mean I also lock T2 where ZF4 = 2001, 2002 and 2004.  Yet for example, when I execute E2 with T2-ZF4 = 2007 in another session this triggers a lock conflict.
The only way I can request a successful lock on T2 when I have already called E1 is to fully qualify all of the E2 FM parameters.  For example, if I call the E2 where T2-ZF4 = 2007 and T2-ZF1 = 0005 then the request is Ok.

Similar Messages

  • How can build BMM with multiple fact tables

    HI Gurus,
    I have 4 fact tables and 18 Dimension table. Dimension tables have links with multiple fact tables. i have created physical joins in Physical layer. Now my questions is how can i create Business Model with multiple fact tables.
    i mean should i create 4 fact tables as logical tables and logical keys ? Then i have to move all dimension tables in to Business model?
    i am new to OBIEE. i gone through tutorial it is showing with one fact and multi dimension table. Should i do follow same style with multi fact tables.
    Please help me. Thanks in advance for your support.

    Thanks for your response.
    I had drag all tables from the phisical layer to Business Model. then i have deleted all links and recreated complex joins with default values.
    now i have some revenue amont columns in fact tables.
    my question is should i should i create aggregation ( like Sum..) for those columns? is it must ?
    please let me know thank you very much

  • Joins with multiple fact tables

    Hi Experts,
    i have one doubt in joins
    we have two dimensions D1 and D2,
    D1 is having A1 and A2 columns
    D2 is having B1 and B2 columns
    two facts F1 and F2 these are joined like D1 to F1 D1 to F2 and D2 to F1, D2 to F2
    D1----->F1
    D1------>F2
    D2-------->F1
    D2-------->F2
    if i selected A1 and B1 in a request from which FACT table will get the data and why can you please explain
    please help me
    reg,
    Jell

    Hi All,
    I have a similar requirement where I have 4 multiple fact tables and we can't combine all those facts into one single fact table. In that case how can a query work with multiple common and uncommon dimensions and measures from multiple fact tables, if it doesn't work that way - can you please explain how can we expect a query to work with multiple fact tables.
    For eg: D1– Dim
    D2 – Dim
    D3 – Dim
    D4 – Dim
    F1 –Fact
    F2 – Fact
    F3 – Fact
    D1 -> F1
    D2 -> F1,F2
    D3 -> F2
    D4 -> F1, F3
    In this case if we want to query from D1,D2,D3, F1, F2 or D1,D2,D3,D4,F1,F2,F3. Kindly please explain how it can be modeled in BMM or what are the limitations. I have done with two fact tables in past and didn't had issues but this is kind of a vast implementation. Your help is appreciated.

  • Smart form problem with multiple pages & table problem

    Hi experts,
    I have a problem with my smart form with multiple pages
    Situation: I have a smart form that ALWAYS has at least 2 pages. In one page the quotation, in the second page (basically this is the 3rd page as the 2nd page is optional) the terms and conditions. Sometimes however, when there are many items in the quotation more than 1 page is needed for the quotation.
    The (optional) second page of a quotation has a different header than the first page of a quotation. So I made a second page with 2 secondary windows (where the header texts are in). The main window is after the secondary windows and has to finish the quotation.
    The problem is that my headers of the second page are never printed, it stays a blank space. The table however does continue and is printed.
    Another problem I have is that I have a table (with the quotations) with 6 columns. The first 2 columns are displayed correctly but once the 3rd column the columns are shown on a lign below.
    Regards,
    PJ

    I would suggest another approach to this problem.
    Use just one page. For the headers on the first page, use a secondary window and on the conditions tab, choose the additional event - Only on First Page.
    For the different header on the second page, create another secondary window on the same page (probably even overlapping the first header on your layout). But in this one, on the conditions tab, choose the additional event - Not on First Page.
    The table should flow as you would be using the Main window for this one.
    As for columns, if they are too wide and wont fit in the same line, it would move to the next line. So you would have to re-adjust the line width and test.
    Hope this resolves your problem.
    Regards,
    Ancy
    Edited by: abapfreak on Oct 4, 2010 11:52 AM

  • Importing data from Microsoft excel file to Oracle Database with Multiple Data Tables. Need expert advice and guidance

    I posted a query on Importing data from Microsoft Excel to Oracle Database (Multiple Data Tables). I got some answer and reference from the forum.
    I presented to my Oracle consultant and representative from Oracle Malaysia. They said impossible. I do not believe what they said. I do believe can be done.
    Can someone help or direct me to an expert that can help me on this

    e90f478a-c529-4c48-b189-51eebeaed477 wrote:
    I posted a query on Importing data from Microsoft Excel to Oracle Database (Multiple Data Tables). I got some answer and reference from the forum.
    I presented to my Oracle consultant and representative from Oracle Malaysia. They said impossible. I do not believe what they said. I do believe can be done.
    Can someone help or direct me to an expert that can help me on this
    We don't know the "query on Importing data from Microsoft Excel to Oracle Database (Multiple Data Tables). "
    We don't know where you posted said query.
    We don't know what "some answer and reference" you received "from the forum."
    We don't know what it was that your "Oracle consultant and representative from Oracle Malaysia" said was "impossible".
    So on what basis are we supposed to "help or direct" to "to an expert that can help "?

  • Querying Nested Tables with Multiple other Tables

    I am trying to query columns from a table and it's nested table and do a join to another table.
    SELECT IM.*,
    IMP.PROGRAM_ID,
    S.STAGE_NAME
    FROM TB_ITEM_MASTER IM , TABLE(TB_ITEM_MASTER.PROGRAMS) IMP, TB_STAGE S
    WHERE S.STAGE_ID = IM.STAGE_ID
    AND IM.PROGRAM_ID IN(1,2);
    When running this query I receive the error:
    ORA-00904:"TB_ITEM_MASTER"."PROGRAMS": Invalid Identifier
    I actually copied this query straight from an Oracle Documentation, just replaced my table names with theirs. This query will almost be like a template to me as the program_id field in the Nested table is very cruicial to me. I will joining many tables to TB_ITEM_MASTER and using the where clause against program_id. What's the problem here?
    Please advise.
    ps. Did I mention how much I hate working with this Nested table stuff:(

    You must use the alias name, not the table name.
    SQL> create type employee_obj as object (empno number) ;
      2  /
    Type created.
    SQL> create type employees_nt is table of employee_obj ;
      2  /
    Type created.
    SQL> create table departments (deptno number(2), dname varchar2(20), employees employees_nt)
      2  nested table employees store as employees_table
      3  /
    Table created.
    SQL> insert into departments values (1, 'DEPT #1', employees_nt(employee_obj(2), employee_obj(3))) ;
    1 row created.
    SQL> insert into departments values (22, 'DEPT #2', employees_nt(employee_obj(22), employee_obj(33))) ;
    1 row created.
    SQL>
    SQL> SELECT IM.*,
      2  IMP.empno
      3  FROM departments IM , TABLE(IM.employees) IMP
      4  WHERE IM.deptno IN(1,2);
        DEPTNO DNAME
    EMPLOYEES(EMPNO)
         EMPNO
             1 DEPT #1
    EMPLOYEES_NT(EMPLOYEE_OBJ(2), EMPLOYEE_OBJ(3))
             2
             1 DEPT #1
    EMPLOYEES_NT(EMPLOYEE_OBJ(2), EMPLOYEE_OBJ(3))
             3
    2 rows selected.
    SQL>

  • Hierarchy with multiple Physical tables

    Some time ago there was a post with this subject and I am in need, if you pls, with the same situation:
    I am looking for Dim (1) - (1:N)-> Dim (3). And Dim (3) - (1:N)-> Fact.
    Suggestion by Mr. Bharath was to, just reduce your snowflake to star in your BMM with Dim (3) as your single LTS. Within the LTS map Dim (1). to Dim (3).
    Could someone pls. help me clarifying the suggestion .../
    a) Should I use the Dim(3) LTS and how to map Dim(1) ? - I believe we should use a column ? right ? Or just Add the Dim(3) in the LTS tables
    Txs. for any hints
    Antonio

    Hi Antonio,
    First of all - try to avoid SNF in BMM.
    http://www.oraclebidwh.com/2010/10/obiee-bmm-layer-design-principalsbest-practices/
    Comments:
    1) You can keep the SNF model in BMM, but if you keep them, then you cannot create an hiearchy with combination of Dim(1) and Dim(3) together as those are two seperate LT.
    2) OBIEE will take the shortest path in forming the query. But, if there are multiple shortest path, then OBIEE will use the latest relationship ID in creating the execution plan. For example: Dim (1) is joined with Dim(3) and Dim(4) and your report pulls - Dim(1) and Fact(1), then the shortest path can be either through DIM(3) or Dim(4), and for such scenario's OBIEE will use the ID (latest ID). Say Dim(4) was the latest join - then OBIEE will use Dim(4) in the query to join with Dim(1).
    3) I actually do not undertstand your issue here - if you are creating an Hiearchy using Dim(1) and Dim(3) together, then why don;t you pull all the fields from Dim(1) into this LT. And in your presentation create folders if you want both the dimensions to be displayed seperately.
    If you are trying to understand and explore OBIEE - then go ahead play with all possible ways you could think off.
    Regards,
    Bharath

  • Unable to Open Document With Multiple Sheets & Tables

    Hi,
    Since I've had Numbers for iOS I've been a little disappointed that Apple forgot the complexity of spreadsheets.
    The reason I say this is because i've been trauling for my latest problem for quite a while.
    At the moment on my MBPro, I have a Numbers document saved in iCloud which works PERFECTLY for me (on the MBP).
    It consists of about 5 sheets, each having 2 tables.
    Each of those tables has 3 or 4 forumals which relate to relative cells. They're nothing but basic arithmatic cells i.e. think of a journal sheet for a business. Works in the same fashion but tracks my mortgage payments etc...
    It opens perfectly on my Mac, but when I fire it up on numbers, I get a crash and a crashlog.
    Before I flummux everyone with the crashlog, has anyone experienced this yet? If not and you need the crashlog, I can post it. From what I see, it's a non-specific error which I can't seem to decypher.
    Any help would be appreciated!
    Cheers,
    Adrian!

    Just to cofirm that this has been solved by the iWork team. THemselves. Below is the message which I received back with the file I send them with the appropriate corrections:
    Hello,
    In Numbers on iOS, the restrictive formula editing is not handling the extra space in some of the formulas. In some of the tables, in column D, the formulas have a space between the function name and the open parenthesis.
    E.g. =IF (...
    Attaching a file with the extra spaces removed that should open on your iPhone.
    This issue is noted.
    We appreciate your time.
    The iWork Team
    I think this boiled down to a bug. I wouldn't have ever thought that the creators of Cocoa would even let a bug like this slip through
    Ace work for them spotting this though!

  • Databinding a gridview with multiple Oracle tables

    Hy i'am trying to populate my gridview from multiple tables
    this is my QueryString :
    SELECT E.ID_AAA,E.ID_ZZZ,E.RRR_DEB,E.III_FIN,E.CODE,P.COD_STR,P.COD_STR_3_CAR,P.LIB_FR,P.LIB_ENG
    FROM TR_DSR_HTR_RRR E, TR_DSR_HTR_TTT P
    where E.ID_AAA= P.ID_AAA
    C# code:
    if (OracleQueryString != "") /* the query str*/
    OracleCommand cmd = new OracleCommand();
    cmd.Connection = conn;
    cmd.CommandText = OracleQueryString;
    cmd.CommandType = CommandType.Text;
    OracleDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
    if (dr.HasRows)
    dt.Load(dr, LoadOption.OverwriteChanges);
    GridView1.DataSource = dt;
    GridView1.DataBind();
    conn.Dispose();
    Binding is rendering but i have error out of index at databind
    thx

    Hy i'am trying to populate my gridview from multiple tables
    this is my QueryString :
    SELECT E.ID_AAA,E.ID_ZZZ,E.RRR_DEB,E.III_FIN,E.CODE,P.COD_STR,P.COD_STR_3_CAR,P.LIB_FR,P.LIB_ENG
    FROM TR_DSR_HTR_RRR E, TR_DSR_HTR_TTT P
    where E.ID_AAA= P.ID_AAA
    C# code:
    if (OracleQueryString != "") /* the query str*/
    OracleCommand cmd = new OracleCommand();
    cmd.Connection = conn;
    cmd.CommandText = OracleQueryString;
    cmd.CommandType = CommandType.Text;
    OracleDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
    if (dr.HasRows)
    dt.Load(dr, LoadOption.OverwriteChanges);
    GridView1.DataSource = dt;
    GridView1.DataBind();
    conn.Dispose();
    Binding is rendering but i have error out of index at databind
    thx

  • Working with large database with multiple large tables ( orcale 11)

    Hi all,
    I'm trying to read and parse 3 tables:
    NetworkEvent - 500000 entries
    NewTrapEvent - 500000 entries
    NewTrapVlaue - 2000000 entries
    I I used 1 JDBC connection, 2 statements and 3 ResultSet( i used same statement for two queries).
    My questions are:
    ==========
    1. Is it reasonable? or should I add more connections? or more statements?
    2. Additionally when creating the Result Set I used the following parameters:
    ResultSet.TYPE_SCROLL_INSENSITIVE
    ResultSet.CONCUR_READ_ONLY
    and stmt.setFetchSize(1000)
    is it valid parameters? should the fetch be larger?
    is there any more important parameters that I missed?
    3. When setting the SQL command, I used each command to retrieve all the table entries:
    "select * from ana37.NetworkEvent order by detectiontime"
    Should I take partial entries in a loop? (for example 100000 in each loop) or is it ok for the Result Set to hold all of the entries( 2 milion)
    4. Can I clean the result set when I finished processing previous entries?
    thx
    Edited by: user9001513 on 06:59 23/11/2010

    Why don't you use a stored proc?
    Why are you ordering it?
    Should I take partial entries in a loop? Yep. Because software isn't perfect. No point in attempting to process the universe when you know it will fail sometime and it is easier to handle smaller failures than large ones (and you won't have to redo everything.)

  • Help with universe with multiple related tables/loops

    Post Author: bradwist
    CA Forum: Semantic Layer and Data Connectivity
    Hi. I am relatively new to Business Objects and have been putting together some universes for our use. Most things I can accomplish well enough. However, I've run into an issue that I think fits within this topic. I've got several related tables and I'm looking for the best way to construct the universe to support our queries. The best way to describe them is to say that the database has a table of Person records, and a table of Relationships. One Person may be related to another Person in a number of ways (sibling, spouse, parent, etc). This can be pictured as Person   Relationship     ID -
    < PersonID        -
    < RelatedPersonID or Person1 -< Relationship >- Person2 where Person1 and Person2 really both point to the same physical table. I believe these tend to lend themselves to Aliases. However, each Person table really has a number of subordinate records in tables (addresses, phone numbers, etc). Address1 >--- Person1 -< Relationship >- Person2 ---< Address2 While this can be done (and I've done so), it's difficult to explain to some analysts why this construct is needed in the universe in order to answer a question like: Give me all of Bob's Siblings, their ages, and their addresses. This is a simplification, as our structures actually include other types of Entities (Person, Business, Government, Organizations), all of which can be related to one another. Is there a way that BO Universes will support this structure? Thanks.

    exp system/manager file=exp.dmp log=exp.log full=y at the source database.
    imp system/manager file=exp.dmp log=imp_show.log full=y show=y - create the log file without importing the data
    edit the imp_show.log and extract the statements that are needed to re-create users,roles,alter user and grants.
    Pre-create the tablespaces using SQL*Plus in the target database.
    execute the modified imp_show.log(All DDl's)
    imp system/manager file=exp.dmp log=imp.log fromuser=A touser=B
    Re-compile all the Invalid Objects.
    HTH
    -Anantha

  • Af:tree With Multiple Child Table

    Hi,
    I have a requirement where i have to show a af:tree with child records from two different view Iterators, I created one tree but facing a issue. It shows the name of the Child view iterators and then the record inside it.
    Like :-
    ---> DummyRecord1 *(Record from Parent Iterator)*
    ------------>viewIterator1 *(Name of the First Child Iterator)*
    -------------------->DummyRecord2 *(Record from First Child Iterator)*
    ------------>viewIterator2 *(Name of the Sec Child Iterator)*
    -------------------->DummyRecord2 *(Record from Sec Child Iterator)*
    But i don't want to show the Name of the Child iterators in the tree.I want the tree something like:-
    ---> DummyRecord1 *(Record from Parent Iterator)*
    -------------------->DummyRecord2*(Record from First Child Iterator)*
    -------------------->DummyRecord3 *(Record from Sec Child Iterator)*
    My .Jspx code:-
    <af:tree value="#{bindings.*someViewIterator*.treeModel}"
    var="node"
    selectionListener="#{bindings.*someViewIterator*.treeModel.makeCurrent}"
    rowSelection="single" id="t1">
    <f:facet name="nodeStamp">
    <af:outputText value="#{node}" id="ot1"/>
    </f:facet>
    </af:tree>
    My Page Def code:-
    ><variableIterator id="variables"/>
    > <iterator Binds="*someView*" RangeSize="25"
    > DataControl="AppModuleDataControl"
    id="*someViewIterator*"/>
    </executables>
    <bindings>
    <tree IterBinding="*someViewIterator*"
    id="*someView1*">
    <nodeDefinition DefName="*someView*"
    Name="*someView12*">
    <AttrNames>
    <Item Value="nodeValue"/>
    </AttrNames>
    <Accessors>
    <Item Value="viewIterator2"/>
    <Item Value="viewIterator3"/>
    </Accessors>
    </nodeDefinition>
    <nodeDefinition DefName="viewIterator2"
    Name="viewIterator123">
    <AttrNames>
    <Item Value="nodeValue"/>
    </AttrNames>
    </nodeDefinition>
    <nodeDefinition DefName="viewIterator3"
    Name="viewIterator345">
    <AttrNames>
    <Item Value="nodeValue"/>
    </AttrNames>
    </nodeDefinition>
    </tree>
    </bindings>
    I am using JDev  11.1.1.6.0
    Why is Tree component creating an extra level showing the iterator name, is there any way to remove that level and show the tree with the actual records only...Thanks in advance..

    Hi,
    trees show hierarchical dependencies of a single path. While it is possible to hack the tree binding configuration to show two root nodes, you can't show two child iterators unless you warp the ADF binding model in a custom tree model (in which case its your code that retrieves and manages the user selection)
    Frank

  • How can I pass multiple condition in where clause with the join table?

    Hi:
    I need to collect several inputs at run time, and query the record according to the input.
    How can I pass multiple conditions in where clause with the join table?
    Thanks in advance for any help.
    Regards,
    TD

    If you are using SQL-Plus or Reports you can use lexical parameters like:
    SELECT * FROM emp &condition;
    When you run the query it will ask for value of condition and you can enter what every you want. Here is a really fun query:
    SELECT &columns FROM &tables &condition;
    But if you are using Forms. Then you have to change the condition by SET_BLOCK_PROPERTY.
    Best of luck!

  • How to create a table with multiple select on???

    Hi all,
            I am  new to webdynpro and my requirement is to create a  table with multiple selection on.I have to add abt 10 rows in the table but only 5 rows should be visible and moreover a verticalscroll should be available to view other rows.Can anybody explain me in detail how to do that.Please reply as if you are explaining  to a newcomer.Reply ASAP as i have to do it today.
                                                                           Thanxs

    Hi,
    1. Create a value node in your context name Table and set its cardinality to 0:n
    2. Create 2 value attributes within the Table node name value1 and value2
    3. Goto Outline view> Right click on TransparentUIContainer>Apply Template> Select Table>mark the node Table and it's attributes.
    you have created a table and binded its value to context
    Table UI properties
    4.Set Selection Mode to Multi
    5.Set Visible Row Count to 5
    6.ScrollableColCount to 5
    In your implemetaion, you can add values to table as follow:
    IPrivate<viewname>.ITableElement ele = wdContext.nodeTable().createTableElement();
    ele.setValue1(<value>);
    ele.setValue2(<value>);
    wdContext.nodeTable().addElement(ele);
    The above code will allow you to add elements to your table node.
    Regards,
    Murtuza

  • How to build a form with multiple tables in oracle application express

    Hi everyone,
    I have got problem in building a form with multiple tables.I have a main table with (20) columns and this main table is related to the other tables with the primary key-foreign key relation ship.My requirement is i have to build a form which has fields from many tables and all the fields are related to the main table using (ID) column.In that form if i enter ID field i have to get information from differnt tables.
    Please help me to solve this (building a form with mutiple tables)
    Thank you
    sans

    Sans,
    I am no Apex expert, but with a situation as "complex" as yours, have you thought about creating a VIEW that joins these 7/8 tables, placing an INSTEAD OF trigger on that view to do all the business logic in the database, and base your application on the view?
    This is the "thick-database" approach that has been gaining momentum of late. The idea is to put your business logic in the database wherever possible, and let the application (Form, Apex, J2EE, whatever) concentrate on UI issues,

Maybe you are looking for