The no of lines in a table

hi all,
i have a internal table with all the values and i need to write it with the serial number in hte first column. so it did as
loop at itab.
write : sy-index,itab-field1....
endloop.
but the serial was not displayed. i even tried with sy-tabix but not displayed.
points will be rewarded
thanks inadvance

Dear jayasree muthaiyan,
You can declare internal table with header line or using work area for the SY-TABIX to work. Herewith some code for reference:
TABLES: TCURC.
DATA:  DMBTR  LIKE BSIS-DMBTR,
       WAERS LIKE BSIS-WAERS,
       IT_TCURC LIKE TABLE OF TCURC WITH HEADER LINE.
DMBTR  = '1234567890.12'.
SELECT * FROM TCURC INTO TABLE IT_TCURC.
LOOP AT IT_TCURC.
  WAERS = IT_TCURC-WAERS.
  WRITE: / SY-TABIX NO-GAP, ')' NO-GAP, WAERS, DMBTR CURRENCY WAERS.
ENDLOOP.
or
TABLES: TCURC.
DATA:  DMBTR  LIKE BSIS-DMBTR,
       WAERS LIKE BSIS-WAERS,
       IT_TCURC LIKE TABLE OF TCURC,
       WA_TCURC LIKE LINE OF IT_TCURC.
DMBTR  = '1234567890.12'.
SELECT * FROM TCURC INTO TABLE IT_TCURC.
LOOP AT IT_TCURC INTO WA_TCURC.
  WAERS = WA_TCURC-WAERS.
  WRITE: / SY-TABIX NO-GAP, ')' NO-GAP, WAERS, DMBTR CURRENCY WAERS.
ENDLOOP.

Similar Messages

  • Link always the first 5 lines from another table, even after a reorder. How

    Hello,
    I'm creating my own expenses sheet based on the Numbers built-in model. I've about 15 categories and like to show only the top 5 and summarize the rest as other to plot a pie chart.
    My idea was to create a new table called Top 5 Expenses with 6 rows, set the order of Expenses by Category table to greater expenses amount first, and on the Top 5 table I'd link the first row with the first row of Expenses by Category. This is pretty easy, just put = and click on the desired cell, but when I reorder the Expenses by Category table the link is updated to keep pointing to the old most expense category.
    This is an example:
    Expenses by Category
    Home - $1000.00
    Car - $500.00
    Games - $130.00
    Computer - $120.00
    With this data a Top 3 table would be
    Home - $1000.00 (= Expenses by Category :: A1)
    Car - $500.00 (= Expenses by Category :: A2)
    Games - $130.00 (= Expenses by Category :: A3)
    But if I add a new transaction to Computer and it now gets the 3rd position, after a reorder the table is:
    Expenses by Category
    Home - $1000.00
    Car - $500.00
    Computer - $180.00
    Games - $130.00
    And the Top 3 became:
    Home - $1000.00 (= Expenses by Category :: A1)
    Car - $500.00 (= Expenses by Category :: A2)
    Games - $130.00 *(= Expenses by Category :: A4)*
    The Top 3 table isn't pointing to the 3rd line anymore. I've tried to set it to =Expenses by Category :: $A3, =Expenses by Category :: A$3 and =Expenses by Category :: $A$3. But it always is updated to A4.
    Is there a way to the Top table point to the 5 first lines?

    Felipe,
    That's a very interesting problem statement. Here's how I would proceed.
    Add a Table with the sole function of computing the rank of each category, using SUMIF to do the totals for each category and RANK to determine the position. If you are concerned about what happens in the case of a tie score, we can talk about that later - there's a pretty easy solution.
    In a third table, from which you will plot, use VLOOKUP to grab categories in the proper order, as determined by the RANK expression in the second table. Your sixth row, Other, will have the value of the total expenses less the sum of the other five, easy enough to write an expression for.
    I'd be happy to fill in any details you need.
    Jerry

  • How to get the Number of lines displayed in  table control in bdc

    Hi,
    when we write a  bdc for a standard transaction, if we encounter a table control, we fill the values for each record like field(01), and the second record field(02) .......and so on..
    if only 3 records are displayed in the screen and if we have 5 records to be filled in the table control, how to write the logic for that?
    how to track of how many lines are getting displayed in the table control .. again it depends on the screen resolution i think..
    useful answers will be rewarded
    shekhar

    Hi,
    Here is the solution code for this :-
    data for controlling paging on screen 0102 
    DATA: W_MAXLINES(2) TYPE N, 
    W_NEXT_LINE(3) TYPE N, 
    W_PAGE(1), "y = page forward, n otherwise 
    W_SCRLEN(2) TYPE I, 
    W_SCRLINE(2) TYPE I. 
    DATA: BEGIN OF W_HDR. 
    INCLUDE STRUCTURE D020S. 
    DATA: END OF W_HDR. 
    DATA: BEGIN OF W_FLD OCCURS 100. 
    INCLUDE STRUCTURE D021S. 
    DATA: END OF W_FLD. 
    DATA: BEGIN OF W_LOG OCCURS 20. 
    INCLUDE STRUCTURE D022S. 
    DATA: END OF W_LOG. 
    DATA: BEGIN OF W_MC OCCURS 20. 
    INCLUDE STRUCTURE D023S. 
    DATA: END OF W_MC. 
    DATA: BEGIN OF W_DYNPRONAME, 
    PROGRAM(8) VALUE 'SAPMM60X', 
    DYNPRO(4) VALUE '0102', 
    END OF W_DYNPRONAME. 
    FORM GET_MAX_LINES. 
    set w_maxlines to the number of var-loop occurrences on the screen so 
    that we know when to page forward on screen 0102 
    also initialise w_next_line to zero for GET_NEXT_LINE 
    this subroutine caters for all cases - including screens without loops 
    CLEAR: W_MAXLINES, 
    W_NEXT_LINE. 
    IMPORT DYNPRO W_HDR 
    W_FLD 
    W_LOG 
    W_MC 
    ID W_DYNPRONAME. 
    LOOP AT W_FLD WHERE LTYP EQ 'L'. 
    MOVE W_FLD-LINE TO W_SCRLINE. "first var-loop line 
    MOVE W_FLD-LBLK TO W_SCRLEN. "depth of loop block 
    EXIT. 
    ENDLOOP. 
    IF SY-SUBRC EQ 0 
    AND W_SCRLEN NE 0. 
    sy-srows = total no of lines on screen 
    w_scrline = actual first line of loop so that 
    w_scrline - 1 = number of heading lines (before loop) 
    4 = no of lines at top of screen - command line, pushbuttons, 2 ulines 
    3 = no of lines after loop - uline & Page count 
    w_scrlen = no of lines in loop block 
    w_maxlines = sy-srows - ( wscrline - 1 ) - 4 - 3 
    and then 1 less but not sure why! 
    W_MAXLINES = SY-SROWS - W_SCRLINE - 1 - 4 - 3. 
    W_MAXLINES = W_MAXLINES - 1.
    W_MAXLINES = W_MAXLINES DIV W_SCRLEN. 
    ELSE. 
    MOVE 99 TO W_MAXLINES. "this required if no screen loop 
    ENDIF. 
    ENDFORM. 
    FORM GET_NEXT_LINE. 
    set w_page if page forward is required 
    W_NEXT_LINE = W_NEXT_LINE + 1. 
    IF W_NEXT_LINE GT W_MAXLINES. 
    W_NEXT_LINE = 1. 
    W_PAGE = 'Y'. 
    ELSE. 
    W_PAGE = 'N'. 
    ENDIF. 
    ENDFORM. 
    Hope it helps.
    reward if helpful.
    Regards,
    Sipra

  • Right-Indenting the last paragraph line in a Table Of Contents entry

    Hi,
    I'm using CS4 In Design.
    I'm trying to format the paragraph styles for my Table of Contents.
    I have the tab leaders working, everything looks good except that I have entries that have multiple lines, and I can't find a way to format the TOC paragraphs so that the lines BEFORE the last line are right-indented more than the last line (which of course contains the tab leads and page number).
    I'd like to not have to go into my text and manually add Right Index Tabs in every heading instance that will be pulled into the TOC.
    Thanks,
    Robert

    > How DOES one set last lines that don't leave room for leaders?
    One manually breaks the line short (or lives with no leaders) using a
    shift-return. I usually finesse TOCs after I think the client is mostly
    done with correcting.
    > I now note that some of my neat page numbers are nudged to the right...
    I'm not sure what that means. If you're using a right-aligned tab (or
    two tabs, if you want to right-align the ends of the leaders) your
    numbers should right-align on the tab setting. Exactly. Nothing should
    be "nudged to the right".
    Kenneth Benson
    Pegasus Type, Inc.
    www.pegtype.com

  • Difference between line type and table type

    hi,
    can any one explain the difference between line type and table type . and how to declare a internal table and work area in BSP's

    hi,
    Go through this blog, this might help you.
    /people/tomas.altman/blog/2004/12/13/sdn-blog-how-to-do-internal-tables-in-bsp
    People who have worked with ABAP for a while sometimes forget that the internal table concept is rather different than what exists in most programming languages. It is very powerful, but at the same time can be confusing.
    In SAP it is possible to have a table which is the rows and a headerline which is the working area or structure which can then be commited to the table.
    With a BSP, if we try to create an internal table within the BSP event or layout we will get the following error: mso-bidi-
                            "InternalTableX" is not an internal table - the "OCCURS n" specification is mso-bidi- missing.
    class="MsoNormal"><![if !supportEmptyParas]>The problem we are seeing as an inconsistency has to do with the difference between classic ABAP and ABAP Objects. When SAP introduced ABAP Objects they decided to clean up some of the legacy syntax and create stricter rules. However they didn't want to break the millions of line of code that already existed, so they only implemented these stricter checks when OO is being used. Therefore you can declare a table with a header line in a regular ABAP program or Function Module but you can't have one with a header line in OO.
    Because everything in BSP generates ABAP OO classes behind the scenes, you get these same stricter syntax checks. My suggestion is that you have a look in the on-line help at the section on ABAP Objects and always follow the newer syntax rules even when writing classic ABAP programs.
    In a BSP when we need to work with a table we must always do the following:
    1, in the Types definitions create a structure:
                            types : begin of ts_reclist,
    mso-bidi-        style='mso-tab-count:2'>                            receiver type somlreci1-receiver,
    mso-bidi-        style='mso-tab-count:2'>                 style='mso-tab-count: 1'>             rec_type type somlreci1-rec_type,
    mso-bidi-         style='mso-tab-count:2'>                            end of ts_reclist.
    mso-bidi- <![if !supportEmptyParas]> <![endif]>
    but we must remember this is only a structure definition and we cannot store anything in it, although we can use it elsewhere as a definition for Structures(WorkAreas)
    2, in our Types definitions (this is the best place for this one as we can then access it from many areas without having to create it locally) so in the Types definitions we must create a TableType:
    class="MsoNormal">                         types : tt_reclist type table of ts_reclist.
    class="MsoNormal"><![if !supportEmptyParas]> <![endif]> this TableType is our table definition and again we cannot store anything in it, but we can use it elsewhere as a definition for InternalTables
    3, now that you have laid the foundations you can build and in the event handler, it is now simply a case of creating the InternalTable based upon the Table definition:
                           data: t_reclist type tt_reclist.
    and creating the structure based upon the structure definiton:
    <![if !supportEmptyParas]>   <![endif]>                         data: s_reclist type ts_reclist.
    as described above, the structure becomes the work area and this is where you assign new values for elements of the table eg:<![endif]>
                            s_reclist-receiver = '[email protected]'.   "<-- change address
    mso-bidi- <![if !supportEmptyParas]> <![endif]>
    mso-bidi-                         s_reclist-rec_type = 'U'.
    and then once the data is in the elements of the structure, the structure can be appended to the internal table as follows: class="MsoNormal">
                            append s_reclist to t_reclist.
    <![if !supportEmptyParas]> <![endif]>
    the internal table will then be readable for the ABAP function and can be applied for example as follows: class="style1">           style='mso-tab-count:1; font-family: "Courier New", Courier, mono;'>          
    class="style1">CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
                            EXPORTING
    style='mso-tab-count:2'>                                    document_data = docdata
    style='mso-tab-count:2'>                                    DOCUMENT_TYPE = 'RAW'
    style='mso-tab-count:2'>                                    PUT_IN_OUTBOX = 'X'
    style='mso-tab-count:2'>                                    COMMIT_WORK = 'X' "used from rel.6.10
                            TABLES
    mso-bidi-font-size: style='mso-tab-count:2'>                                    receivers = t_reclist
    class="style1"> <![if !supportEmptyParas]>   <![endif]>
    <![if !supportEmptyParas]>F inally, a comment from Thomas Jung,
    <![if !supportEmptyParas]> “when defining my work area for an internal table I like to use the like line of statement. That way if I change the structure of my table type, I know that my work area will still be OK. Second, your types and table types don't have to just be declared in your code. You can create a table type in the data dictionary and use it across multiple programs(also great for method and function parameters). I really push hard for the other developers at my company to use the Data Dictionary Types more and more.”
    Hope this helps, Do reward.

  • How to calculate the total of absences? How to collect data from a specific line of a table?

    Hi,
    Again, I made a nice coloured picture from a screen capture which summarise the improvements that I would like to make in my form,
    Situation:
    For an educational purpose, I made this form   to simplify the way of recording the data and also to develope the independence of the students.
    ( I am doing this on a voluntary basis, working extra hours on my free time but I don't really mind because I am learning a lot of things in the same time)
    After being tested by the teacher, the student has to record the short date, the lines memorised, his grade, number of mistakes, and his attendance.
    I created everything in Word, then converted the file in PDF, then I created all the different fields with Adobe acrobat.
    There is in total 4 sheets, there are all similar except the first one in which there is a box with: date started, date finished, total time spent, absences.
    Below this box there is a table with 16 lines from (A to P) and 7 columns (Days, Date, From.. to.. , Grade, No. lines memorised, No. Errors, Attendance) ( so this table is present on all the sheets)
    Due to the fact that some students need more time than others, and also beacause some text need more time, I estimated a need of 4 sheets at the very most.
    I would like to make the following amelioration and automate the inputting of some of the data because I know that some of the students will certainly forget, so to avoid this scenario I am trying to make this form the easiest possible.
    screen capture of the form:
    screen capture of the form editing, you can see the names of the different fields:
    here is the form (only the first page) : http://cjoint.com/12fe/BBotMMgfYIy_memorisation_sheet_sample.pdf
    In  yellow 00000:
    At present, the students has to input the total of absences manually, is there a way ( script) to automate this by initialising the field next to "Absences" at  " 0 day"   and then everytime that Absent is selected from the COMBO BOX, it add 1 and it is displayed like this:  " 1 day" then " 2 days"  then " 3 days" etc … (so from what I read I have to initialise a counter a the beginning and then for (i...   ) count= count++; something like this...
    Furthermore, I need a solution to overcome the possibility that a second sheet may be needed for the same student; therefore I would need the data from the "attendance column" from the second sheet ( and perhaps the 3rd and 4th aswell) to be added on the "absences field" in the first sheet
    My idea: everytime that the short date is inputted in the first line (next to A) in the "Date" column of one of the 4 sheets then we check the 16 Combo box of the attendance column in this sheet instead to check 16*4=64 fields fot the 4 sheets in one go?
    but I don't know at all how to write it in Javascript. Or perhaps there is a way more easier than that?
    Shall I allocate a value for Absent on the “ export value”?
    In purple
    At present I wrote a simple script which matches the number of lines to the poem selected (Eg.  if I select the poem V.Hugo,  the number "36" will appear next to Number of lines).
    Again I would like the make the life of the students very easy so I would like a script which detects this number “36” on the "From .. to …" column,  as soon it is detected (on the first sheet or 2nd or 3rd or 4th)  check from the same line if "A / Pass" or "B / Pass" have been selected in the "Grade" column ,if yes the short date inputted on this line will be written on the field next to "Date finished" .
    this is a simple example with 36 lines only but somethimes, the students may have to memorise 80 lines and more, this is the reason for having 4 sheets in total.
    So basically I would like to automate the field next to" Date finished:" with a script that collect the short date from the day in which the student has finished his memorisation with "A / Pass" or "B / Pass"
    As for the "Total time spent" George Johnson helped me with a script that calculate the difference betwen date started and date finished (thank you)
    I am sollicting your help, because after trying for hours I was really confused with the different if/else needed. And in top of that, it’s my first experience with Javascript.
    I anticipate your assistance, thanking you in advance.

    I found this for counting the absences, its give you the total that's perfect, but is there a better methode which avoid me to write all the fields name, more simple????
    ( I found the idea here : Re: Total number added automatically  )
    // custom calculation script for field "Total #"
    function CountFields(aFields) {
    var nFields = 0;
    for(i = 0; i < aFields.length; i++) {
    try {
    // count null values, export value of Absence is 0;
    if(this.getField(aFields[i]).value == "0") nFields++;
    } catch(e) {
    if(e['message'] == "this.getField(aFields[i]) has no properties") app.alert("unknown field name: " + aFields[i]);
    else app.alert(e.toString());
    } // end catch
    } // end for aFields
    return nFields;
    // create array of field names to count
    var aNames = new Array("Sheet1AttendanceA","Sheet1AttendanceB","Sheet1AttendanceC","Sheet1AttendanceD","Sh eet1AttendanceE","Sheet1AttendanceF",
    "Sheet1AttendanceG","Sheet1AttendanceH","Sheet1AttendanceI","Sheet1AttendanceJ","Sheet1Att endanceK","Sheet1AttendanceL",
    "Sheet1AttendanceM","Sheet1AttendanceN","Sheet1AttendanceO","Sheet1AttendanceP" );
    // count the non-null fields;
    event.value = CountFields(aNames);
    As for the 2nd question, I've tried to do something similar to the previous script, but of course it doesn't work, but I am quite sure that the idea is similar:
    I don't know also how to add the other condition: the student should get A / Pass or B / Pass in order to consider he has finished??? and also how to check these condition from page 2, 3 and 4 and collect the date
    function Datefinished(bFields) {
    d2.value = nFields[i].value;
    for(i = 0; i < aFields.length; i++) {
    try {
    if(this.getField(aFields[i]).value == this.getField("NumberLines").value) d2.value = nFields[i].value;
    } catch(e) {
    if(e['message'] == "this.getField(aFields[i]) has no properties") app.alert("unknown field name: " + aFields[i]);
    else app.alert(e.toString());
    } // end catch
    } // end for aFields
    return nFields;
    // create array of field names to check
    var aNames = new Array("Texte00","Texte54","Texte56","Texte58","Texte60","Texte62","Texte64","Texte66","Te xte68","Texte70","Texte72","Texte74","Texte76","Texte78","Texte80","Texte82");
    var bNames = new Array("d1","d3","d4","d5","d6","d7","d8","d9","d10","d11","d12","d13","d14 ","d15","d16","d17");   // d1 is included because in some cases a student can finish in 1 day (short text);

  • Table to see the link between line items on bank statement to customer invo

    table to see the link between line items on bank statement to customer invoices

    Hi,
    There is no link from VBRP to BSEG directly.
    This is because the data in BSEG is posted to various accounts and the VBRP is usually for a Sales Order or Delivery.
    However there is a link from BKPF to VBRK and VBRK is linked to VBRP.
    BKPF-AWKEY has the the Invoice number VBRK-VBELN
    Hope this helps.
    regards,
    Advait

  • How to find the open po line item by using EKKO &EKPO tables

    Hi Gurus,
        what i am doing is finding out the OPEN PO line item from EKPO table. I know it has to check the ELIKZ field from the EKPO table.Can you please clarify me on the same in more detail.I has to use the ELIKZ  EREKZ fields from EKPO table.

    Use the field ELIKZ in EKPO. If the field is Blank its an OPEN PO Line Item
    refer this link.
    How to open PO line item

  • How to transfer the contents of a line of a table control to second screen?

    Hi,
    I have a table control and I have entered some contents in one line of a table control .
    When i click on this line and then click on the detail button on the screen , it should take me to another screen and whatever I have entered in the table control should be transferred to the second screen .
    Please could anyone help me out with this .
    Regards,
    Sushanth H.S.

    Hi
    U need to get the index of the line of table control by command GET CURSOR:
    PROCESS PAI.
    LOOP AT ITAB.
       MODULE GET_CURSOR.
       MODULE MODIFY_ITAB.
    ENDLOOP.
    MODULE USER_COMMAND.
    Module to pick up the selected line:
    MODULE GET_CURSOR.
      GET CURSOR LINE VN_LINE.
    ENDMODULE.
    Module to transfer the data from table control to internal table:
    MODULE MODIFY_ITAB.
      ITAB-FIELD1 = <FIELD OF TABLE CONTROL>.
      MODIFY ITAB INDEX <TABLE CONTROL>-CURRENT_LINE.
    ENDMODULE.
    U should considere the variable line has the value of the index of the line of table control, so u need to calculate the number of the corresponding line of internal table:
    MODULE USER_COMMAND.
      CASE OK_CODE.
        WHEN 'DETAIL'.
    * Calculate the line of internal table:
           VN_LINE = <TABLE CONTROL>-TOP_LINE + VN_LINE - 1.
    * Read the data
           READ TABLE ITAB INDEX VN_LINE.
    * Transfer the data to the output structure of the new screen
           <STRUCTURE>-FIELD1 = ITAB-FIELD1.
    * Call the new screen
           SET SCREEN <NEW SCREEN>.
           LEAVE SCREEN.
    Max

  • How to decrease the width of the border line of a table in smartform in 4.7

    hi all,
    i want to decrease the width of the border line of a table in smartform in 4.7 version. how can i do it? plz reply.

    Hi,
       When u r going to create a table in forms it will show the all details regarding the tables
    like  -> color
           -> width etc...
    From there u can do that .
    u can also select the table format as all ready defined formats i.e available in he same screen.

  • System field which stores the no.of lines in a main (table) window

    Hi,
       I would like to know which system field stores the value of height of the main window. based on that I would like to trigger an explicit page-break. Can anyone tell me that field name (table name). I have been looking into one solution which I couldnot find. this is the last option I have.
       I have posted couple of posts but still struggliing with the issue.
    based on the no.of lines remaining in the page I have to draw one line there and move to next page. (page break.) can anyone help me please
    thanks
    reddy

    Hi,
    In the main window if u create the table there r 3 options.
    header
    main
    footer.
    In footer option in outputoptions there r 2 option at print time.
    at page break.
    at end of table.
    U select both the options. Then u  r problem will be solved.
    Rewardpoints if useful.
    Regards
    (YUGANDHAR.P)

  • How can i know the number of lines in field-symbol internal table

    how can i know the number of lines in field-symbol internal table

    Hi,
    If your field symbol has been defined as an internal table :
    Use std describe as
    Data: l type i.
    describe <fs> lines l.
    'l' will contain the number of lines as needed.
    FYI
    The size of this storage area in a field symbols depends on the number of table lines which is not fixed, but determined dynamically at runtime.
    Regards,
    Amit

  • Can't delete from parent table if FK constraint on the out-of-line table

    Using Oracle XML DB 11g
    I am using out-of-line storage table to store a collection of XML elements in conjuction with storeVarrayAsTable="true". So what I have is a parent table containing a nested table of VARRAY of REFs to rows in the out-of-line table.
    In addition, I have a foreign key constraint placed on a column in the out-of-line table.
    My problem is that I am not able to delete rows from the parent table when the FK constraint is placed on the out-of-line table. Only when I drop the FK constraint does the deletion work - all associated rows in the nested table and out-of-line table
    gets deleted correctly.
    With the FK constraint, deleting the child document like this
    dbms_xdb.deleteResource('/project-1.xml')
    gives me this error:
    ORA-31018: Error deleting XML document
    ORA-03001: unimplemented feature
    *Cause:  The XMLType object pointed to by the given REF could not
    be deleted because either the REF was invalid or it pointed to a non-existent table.
         *Action:  Either use FORCE deletion or supply a valid REF.
    I have tried deleting with the FORCE options as well with no success.
    Using DBMS_XDB.DELETE_RECURSIVE_FORCE option doesn't produce an error, but doesn't perform the deletion either.
    Here is the XML Schema:
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" xmlns:xlink="http://www.w3.org/1999/xlink"
    elementFormDefault="qualified" attributeFormDefault="unqualified" xdb:storeVarrayAsTable="true">
    <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="http://www.w3.org/1999/xlink.xsd"/>
    <xs:element name="project" xdb:defaultTable="PROJECT_TAB">
    <xs:complexType xdb:SQLType="PROJECT_TYP">
    <xs:sequence>
    <xs:element name="resourceList" minOccurs="0" xdb:SQLName="RESOURCE_LIST">
    <xs:complexType xdb:SQLType="RESOURCE_LIST_TYP">
    <xs:sequence>
    <xs:element name="aResource" type="refType" minOccurs="0" maxOccurs="unbounded" xdb:SQLInline="false"
    xdb:SQLName="A_RESOURCE_REF" xdb:defaultTable="RESOURCE_REF_TAB"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:sequence>
    <xs:attribute name="aguid" type="xs:string" use="required" xdb:SQLName="AGUID"/>
    </xs:complexType>
    </xs:element>
    <xs:element name="aResource" xdb:defaultTable="A_RESOURCE_TAB">
    <xs:complexType xdb:SQLType="A_RESOURCE_TYP">
    <xs:complexContent>
    <xs:extension base="contactType">
    <xs:attribute name="aguid" type="xs:string" use="required" xdb:SQLName="AGUID"/>
    </xs:extension>
    </xs:complexContent>
    </xs:complexType>
    </xs:element>
    <xs:complexType name="contactType" xdb:SQLType="CONTACT_TYP">
    <xs:sequence>
    <xs:element name="name" type="xs:string" xdb:SQLName="NAME"/>
    <xs:element name="email" type="xs:string" minOccurs="0" xdb:SQLName="EMAIL"/>
    <xs:element name="phone" type="xs:string" xdb:SQLName="PHONE"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="refType" xdb:SQLType="REF_TYP">
    <xs:attribute ref="xlink:href" use="required"/>
    <xs:attribute name="oref" type="xs:string" use="optional" xdb:SQLName="OREF"/>
    </xs:complexType>
    </xs:schema>
    I registered the schema using structured storage with these options:
    BEGIN
    DBMS_XMLSCHEMA.registerschema(
    SCHEMAURL => 'LSDProjects.xsd',
    SCHEMADOC => xdbURIType('/home/LSDProject2/LSDProjects.xsd').getClob(),
    LOCAL => TRUE, -- local
    GENTYPES => TRUE, -- generate object types
    GENBEAN => FALSE, -- no java beans
    GENTABLES => TRUE -- generate object tables
    END;
    The PK and FK constraints were added like this:
    -- Add PK constraints on aResource/@aguid attributes
    ALTER TABLE A_RESOURCE_TAB ADD CONSTRAINT A_RESOURCE_AGUID_IS_UNIQUE UNIQUE (XMLDATA."AGUID");
    -- Add FK constraint on out-of-line table
    ALTER TABLE RESOURCE_REF_TAB
    ADD (CONSTRAINT ref_resource_aguid_is_valid FOREIGN KEY (XMLDATA."OREF")
    REFERENCES A_RESOURCE_TAB(XMLDATA."AGUID"));
    Here are the XML instance documents:
         where resource-1.xml looks like this :
    <aResource aguid="resource-1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="LSDProjects.xsd">
         <name>Jane Doe</name>
         <email>[email protected]</email>
    <phone/>
    </aResource>
         and project-1.xml looks like this :
         <project aguid="project-1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="LSDProjects.xsd"
                   xmlns:xlink="http://www.w3.org/1999/xlink">               
              <resourceList>
                   <aResource xlink:href="/resource-1.xml" oref="resource-1"/>                         
              </resourceList>     
         </project>
    where <project> document contains a collection of <aResource> elements stored in the out-of-line table and
    project/@oref attribute is a foreign key to the primary aResource/@aguid attribute.
    Can someone shed some light on why I am unable to delete "project-1.xml" from the repository when the FK constraint is applied onto the out-of-line table.
    Any advice/suggestions would be appreciated. Thanks!

    Thank you for the quick reply, mdrake.
    I am currently prototyping and testing out (best) ways to achieve data integrity with XML data in XML DB.
    I have instance documents that makes cross references to values in other instance documents
    (not of the same root nodes). What I'm trying to enforce is a referential constraint between the documents
    so that a document cannot be inserted if the referenced document doesn't exists.
    In this situation, a <project> document contains a collection of elements with @oref attributes.
    The collection is stored in an out-of-line table.
    For example:
    <project>
    <resourceList>
    <aResource ... oref="resource-1"/>
    <aResource ... oref="resource-2"/>
    </resourceList>
    </project>
    The @oref (FK) attribute above references a @aguid (PK) attribute in <aResource> document (below):
    <aResource aguid="resource-1"> .... </aResource>
    Basically, I want to ensure that the value of
    /project/resourceList/aResource/@oref
    correspond to a valid
    /aResource/@aguid
    Note that I was able to add the FK constraint on the OOL table without any issues.
    And the constraint did work as expected as I was not allowed to insert a <project> document
    that referenced a non-existent /aResource/@aguid.
    The problem was that I could not delete the <project> document from the XML DB repository
    once the FK contraint was added. Deleting with the DELETE_RECURSIVE_FORCE option did not give
    me any errors - is just didn't do anything.
    I guess there are certain limitations with using out-of-line tables.
    BTW, sorry the examples are hard to read as the indentations are removed when posting.

  • Dynamically picking the line item of table control

    Hi all,
    Can u suggest me a way to dynamically picking the no of line item in the table control displayed.
    Regards,
    Ashutosh Kumar

    Hi Ashutosh,
    In BDC case, what you can do is use the "position button" instead of finding the number of lines on the table control.
    Or else you can use call transaction with 'Options addition'
    eg:
    Call transaction parameters
          clear gs_options.
    <b>      gs_options-defsize = 'X'. "Default size</b>
          gs_options-dismode = 'N'.
          gs_options-updmode = 'S'.
               call transaction 'VI02' using t_bdcdata
                                       "mode 'N'
                                     "update 'S'
                                     options from gs_options
                                   messages into t_messages.
    Please let us know why do you want to know the number of lines on the Table control.If the above answer doesn't satisfy you.
    Regards,
    Ravi

  • How to get the last record of an internall table ....

    Hi All..
    i want to get the last record of an internal table itab, and i want the the value of the last record.

    Hi,
         Use describe statment.
    data: lv_line type i.
        Describe table itab lines lv_line.
        read table itab into wa_itab index lv_line.
    regards,
    Santosh Thorat

Maybe you are looking for

  • About what can be done with free tools today

    Hi, I'm quite new to MHP and JavaTV. I've seen many web pages that informed me about MHP (like Steve's one, thanks if you see this message), but I'm still a bit confused about what can and cannot be done with the free tools available today, eg XleTVi

  • Decode Base64 in 4.6c

    i need to decode base64 attachments. However the funciton modules i would normally use are not available in 4.6c does anyone know how i can do it ?

  • Database Polling Strategy: Time portion of Date/Time not propogated to BPEL

    Hi, I have a simple BPEL process that uses a last update date polling strategy using a helper table. The table I'm going against is a simple, three column table, as defined below: CREATE TABLE XXSI_TEST_PRODUCTS ID VARCHAR2 (32) NOT NULL, DESCRIPTION

  • XLS multiple Sheet Data Upload to Internal Tables

    Hi All, Required one help. There are many FMs which are Uploading XLS to Internal Tables. But is there any function module, which picks up the data from All the sheets available in XLS file, and Upload it to Internal Table. Thanks, Jimit Vadher

  • CAM 6.6 and jdk

    Installed CAM 6.6 the other day on an RHEL build and all seemed to be fine but when came in the next day was getting java errors on webconsole. Turned out the jdk had been updated to the latest version and the one that ships with CAM 6.6 (jdk-1.6.0_1