Accessibility: Reading order of tables and anchored frames

I am creating accessible, tagged (section 508 compliant) PDFs in FrameMaker 9. The reading order for tables and frames is not correct.
When I view the PDF reading order using Adobe Acrobat Professional or another screen reader, anchored items such as tables and anchored frames are  placed last in the reading order, regardless of where they appear in the document flow or page layout. The reading order skips over all tables and frames, reading all paragraphs on a page first, then reading the tables and frames as the last objects on the page. This logically doesn't make sense to skip over tables/frames as they generally apply to the content that preceeds it.
For example, the following document structure:
<Paragraph 1>
<Table 1>
<Paragraph 2>
<Anchored Frame 1>
<Paragraph 3>
<Anchor Frame 2>
<Paragraph 4>
is being read by assistive technology as:
<Paragraph 1>
<Paragraph 2>
<Paragraph 3>
<Paragraph 4>
<Table 1>
<Anchored Frame 1>
<Anchor Frame 2>
I want the document structure to be read correctly as intended.
In otherwords, the PDFs generated by FrameMaker 9 are not completely accessible because of incorrect reading order output by default. This information is not listed in the VPAT for FrameMaker 9.
I want to avoid any post processing using Acrobat's Touch Up Reading Order tool. Is there a way to automate updates to reading order?
Can FrameMaker 9 logically place tables and anchored frames into the correct reading order? How do I adjust these settings?
Thanks in advance!

As mentioned above, tables and anchored frames are inserted into thier own paragraph style "Frame". The paragraph style "Frame" is tagged. To my knowledge, there are no options for tagging or not tagging tables or anchored frames.
Regardless of which paragraph type the table or anchor frame is inserted into, and what that paragraphs tagging settings are, it is still last in the reading order.
I've tried a variety of options: tagging the "Frame" paragraph style as a sibling, child, and parent of my other paragraphs; I've even tried omitting it from the reading order. None of these options present anchored frames (and tables) in the logical reading order.
Even images that are inline (within a paragraph; not in thier own paragraph) are not being read as part of the paragraph.  Inline images get skipped over by screen readers and get read at the end of the page, which makes no sense whatsoever.
All tables and images end up at the end of the reading order (after ALL paragraphs) regardless of the tagging settings.
Refer to my previous screenshot for a clear diagram of what is happening to the reading order. Each of those anchors is in it's own paragraph style. I want tables and anchored frames to be sequential in the reading order along with paragraphs. (1,2,3,4,5,6 not 1,4,2,5,3,6.)
I'm using the Tags tab of the "PDF Setup" dialog to adjust these settings. Is there somewhere else I should be making changes to the reading order?
This is a bit disturbing because FrameMaker touts creating accessible documents and this severe reading order issue impares my ability to do so. I would not consider documents that jump around the page in an illlogical, fixed order, to be accessible. I'm very suprised that no one else has encountered this issue (at least that I can find...)

Similar Messages

  • Best Practice for Image placement and Anchored Frames for use in Robohelp 9

    Hi,
    I'm looking for the best practices in how to layout my images in Framemaker 10 so that they translate correctly to Robohelp 9.  I currently have images inside of Anchored frames that "Run into" the right side of my text. I've adjusted the size of the anchored frame so that my text flows correctly around the image. Everything looks good in Framemaker! Yeah! The problem is that when I link my Framemaker document to Robohelp, the text does not flow around my image in the same manner. On a couple of Robohelp screens the image is running into the footer. I'm wondering if I should be using tables in Framemaker in order to get the page layout that I'm looking for. Also, I went back and forth...is this a Framemaker question or is this a Robohelp question. Any assistance would be greatly appreciated.

    I think Jeff is meaning this section of the RoboHelp forums:
    http://forums.adobe.com/community/robohelp/robohelp_framemaker

  • Multiple child tables and repeating frames

    I have three tables(A,B,and C) where A is the parent of both B, and C. There is no relation between B and C.In the data model, There are three queries, one to each table and I have set up the parent/child relationship in the data diagram.
    In the layout Window I have a master repeating frame which breaks on each record for A. And within that master frame I have two constrained repeating frames for both B and C in that order designed to print all on the same page.
    The problem is that when there is more data for B, the extra records are not displayed .For overflow conditions, I would want A and C information to be reprinted along the top and bottom of each successive page while the middle section would contine on with the extra B records. (I realize this is similar to having header (A) and footer (B) information in the margin, but it is not quite the same thing since B and C depend on A's repeating frame.)

    I'm assuming that all the rows of (C) can always fit onto the page and don't overflow to the next. If so then you'll need the following:
    A Group frame "M_A" that completely surrounds (A) fields
    A Group frame "M_B" that surrounds (B) and defines the space available for (B) to print
    A Group frame "M_C" that surrounds (C)
    Set the properties against each frame:
    M_A:
    Vertical Elasticity: "Variable"
    Print Object On: "All Pages"
    Base Printing On: "Enclosing Object"
    M_B:
    Vertical Elasticty: "Fixed"
    (Re-size this frame in the layout to define the space available for (B))
    M_C:
    Vertical Elasticity: "Variable"
    Print Object On: "All Pages"
    Base Printing On: "Enclosing Object"
    You should end up with:
    A.....
    B1....
    B2....
    B3....
    C1....
    C2....
    A.....
    B4....
    C1....
    C2....

  • Graphics and anchored frames

    My EDD is set up to insert anchored frames as I import a graphic by reference. The default position is centre aligned. I would like to change this to left aligned.
    Then I would like to be able to set up a fixed alignment offset on the graphic. At present I have to manually set up the position (not a major problem but I think it must be possible to get it set up as I would like).
    Finally coming back in from XML the cgm files remove the alignment offset and place the graphic at the very left of the anchored frame.
    Any pointers woulod be much appreciated.
    Thanks
    Edd

    Hi Edd,
    frames and there layout is something that is specified in the template.
    =>
    Open your Template,
    insert a new anchored frame and set the options you want there.
    Delete the frame again and save the Template.
    Afterwards it should work.
    If you are working with FM documents instead of xml documents, you have to import the formats again, of course.

  • Watermark linked to a table or anchored frame

    Hello
    I'm having a problem. I have a table wich has a watermark. I created two more master pages with the watermark and applied to the pages containing the table.
    The problem comes when I add or remove some pages before this tables. The master page still applied to the same number page and the tables pages not.
    I tried to insert the watermark into an anchored frame positioned 'Outside column' but it overlaps the table content.
    How can I solve the problem?
    Thank you in advance
    Best regards.
    Raúl

    You should be using the Master Page mapping to tie a specific paragrah (i.e. the one used to anchor the table) to a custom Master Page.
    See:
    http://www.adobe.com/print/tips/frm7masterpage/index.html or download the PDF at: http://www.adobe.com/print/tips/frm7masterpage/pdfs/frm7masterpage.pdf
    http://rjacquez.com/how_to_apply_master_pages_auto/
    http://tv.adobe.com/watch/tips-and-tricks-for-technical-communicators-to-maximize-producti vity/master-page-mapping-tables/
    http://wiki.scriptorium.com/tiki-index.php?page=Mapping+paragraph+tags+to+master+pages
    http://www.aptsolutions.com/pdf/MasterPageMaps.pdf

  • How to read a databae table and current user name?

    Hi All,
    We need to add two radio buttons in a standard template.The RBs should be visible to some users and should not be visible to others.For this we need to read a database table in the template , compare the logged in user name with a field of the databse table.
    Something like...
    select single * from ZDBTAB into WA WHERE username = sy-uname.
    IF SY-SUBRC = 0 .
    Radio Button1
    Radio Button2
    ENDIF.
    Please provide the exact ITS code for the same.
    Regards,
    Anubhav

    Hi All,
    We need to add two radio buttons in a standard template.The RBs should be visible to some users and should not be visible to others.For this we need to read a database table in the template , compare the logged in user name with a field of the databse table.
    Something like...
    select single * from ZDBTAB into WA WHERE username = sy-uname.
    IF SY-SUBRC = 0 .
    Radio Button1
    Radio Button2
    ENDIF.
    Please provide the exact ITS code for the same.
    Regards,
    Anubhav

  • How do I read from one table and write to another identical table?

    I am very new to Oracle. I am trying to do something that should be very simple.
    I am trying to read from one table in SQL and then write to another
    Identically formatted table. I keep getting various errors. Could someone please
    post some vey simple code that will work so that I can play around with it?
    Any help would be greatly appreciated.
    Thanks,
    Ron

    Thanks, but I must be missing something.
    I have two tables, SONGLIST and SETLIST.
    The second line by itself works just fine on either table.
    Here is the code I used following your seggestion, along with it's error message.
    Hope you can help. Thanks again...
    INSERT INTO SETLIST
    SELECT TITLE FROM SONGLIST WHERE ROTATION <> 'X'
    ORA-00947: not enough values

  • End Routine ABAP to read from Internal table and do calculation.

    Hi All...
    I have completed some coding in a start routine to extract some fields from a DSO containing Master Data (Stock Age) into an internal table (the internal table has been defined in the global declarations area) which will then be read in the end routine.
    (the internal table will be read) at loadtime in the end routine and used in a calculation as described below.
    I.E
    GLOBAL DATA DECLARATION
    Data: ITAB1 TYPE TABLE OF /BIC/DSOTAB
    (DSOTAB has 3 fields PLANT, STYLE, 1STDATE (1STDATE IS A DATE FIELD)
    The start routine has the following code:
    IF ITAB1 IS INITIAL.
    SELECT /BIC/PLANT /BIC/STYLE /BIC/1STDATE
                    FROM /BIC/DSOTAB
                    INTO CORRESPONDING FIELDS OF TABLE ITAB1.
    This is working fine when run under simulation i.e ITAB1 is filled no problem.
    I then need to do a calculation in the end routine.
    1. First I have to find the record in the internal table using the key of PLANT AND STYLE from the RESULT_PACKAGE.
    The code i am using now is as follows....
        READ TABLE ITAB1 TRANSPORTING NO FIELDS WITH KEY
        /BIC/PLANT = <result_fields>-/BIC/PLANT /BIC/STYLE =
        <result_fields>-/BIC/STYLE.
    Once this record has been read I then have to perform the following calculation using the following additional fields
    <result_fields>-/BIC/DYS1ST is a NUMC field in the <result_fields> that will be be filled by the result of the calculation described below.
    <result_fields>-CALDAY is a date field which is already populated in the <result-fields> which is used in the calculation below.
    The Calculation required is a difference in days between two dates
    DYS1ST = CALDAY - 1STRED.
    The code i am using is
    If sy-subrc = 0.
         <result_fields>-/BIC/DYS1ST = <result_fields>-CALDAY -
         i_t_1stred_dso-/BIC/1STRED.
    So the whole section of code inside the LOOP at RESULT PACKAGE looks like this in the end routine
           READ TABLE ITAB1 TRANSPORTING NO FIELDS WITH KEY
        /BIC/PLANT = <result_fields>-/BIC/PLANT /BIC/STYLE =
        <result_fields>-/BIC/STYLE.
    IF sy-subrc = 0.
         <result_fields>-/BIC/DYS1ST = <result_fields>-CALDAY -
         i_t_1stred_dso-/BIC/1STRED.
    Im getting the error
    "ITAB1 " is a table without a header line and therefore has no component called "/BIC/1STRED
    Please can someone advise as to what I need to do to get this fixed please.
    Thanks in advance
    Stevo:)

    Hi,
    You will have to do few changes in your code as below,
    GLOBAL DATA DECLARATION
    Data: ITAB1 TYPE standard TABLE OF /BIC/DSOTAB.
    After that declare a workarea to read the values.
    DATA: i_wa_itab1 type /bic/dsotab.
    (DSOTAB has 3 fields PLANT, STYLE, 1STDATE (1STDATE IS A DATE FIELD)
    The start routine has the following code:
    IF ITAB1 IS INITIAL.
    SELECT /BIC/PLANT /BIC/STYLE /BIC/1STDATE
    FROM /BIC/DSOTAB
    INTO CORRESPONDING FIELDS OF TABLE ITAB1.
    This is working fine when run under simulation i.e ITAB1 is filled no problem.
    I then need to do a calculation in the end routine.
    1. First I have to find the record in the internal table using the key of PLANT AND STYLE from the RESULT_PACKAGE.
    The code i am using now is as follows....
    READ TABLE ITAB1 TRANSPORTING NO FIELDS WITH KEY
    /BIC/PLANT = <result_fields>-/BIC/PLANT /BIC/STYLE =
    <result_fields>-/BIC/STYLE.
    Once this record has been read I then have to perform the following calculation using the following additional fields
    <result_fields>-/BIC/DYS1ST is a NUMC field in the <result_fields> that will be be filled by the result of the calculation described below.
    <result_fields>-CALDAY is a date field which is already populated in the <result-fields> which is used in the calculation below.
    The Calculation required is a difference in days between two dates
    DYS1ST = CALDAY - 1STRED.
    The code i am using is
    If sy-subrc = 0.
    <result_fields>-/BIC/DYS1ST = <result_fields>-CALDAY -
    i_t_1stred_dso-/BIC/1STRED.
    So the whole section of code inside the LOOP at RESULT PACKAGE looks like this in the end routine
    READ TABLE ITAB1 into i_wa_itab1 WITH KEY
    /BIC/PLANT = <result_fields>-/BIC/PLANT /BIC/STYLE =
    <result_fields>-/BIC/STYLE.
    IF sy-subrc = 0.
    <result_fields>-/BIC/DYS1ST = <result_fields>-CALDAY -
    i_wa_itab1-/BIC/1STRED.
    Once you do this changes, your code will work fine.
    Regards,
    Durgesh.

  • Accessing the data of Table and manipulating it

    Hi
    I've a table which returns data from RFM, on the basis of data I've to get checkboxes check/unchecked.
    The ModelNode is of following type:
        -0CONTEXT
         |-Model_Input
           |-EventId
           |-EventValue
    Now based on the value returned by EventValue i'll check the values of 2 checkBoxes.
    The context for the view is
      -0Context
       |-Z_sd_Input
       |  |-EventID
       |  |-EventValue
       |-Check1
       |-Check2
    I've binded my table with EventID, EventValue, Check1 and Check2.
    Now on the basis of each rows returned under the EventID & EventValue, I'll have to put the check or uncheck values in the table.
    I'm using following code:
    for(int i = 0;wdContext.node<model>.size();i++)
         if(wdContext.node<model_input>.getEventValue equals("2")
          wdContext.setCheck1(true);
          wdContext.setCheck2(false);
    But this code is not validating the condition. and puts all the checkboxes as true and false respectively.
    So for data under the EventValues have to be read and for each of them i've to give appropriate checks.. how do i do that
    Say the table return looks like this:
    EventId  EventVal    Check1  Check2
    Volume     2          true   true
    Weight     1           false  true... and so on.
    Can somebody provide solution for it.
    Thanks in advance
    Srikant

    If you define a calculated attribute, you get the node element containing that attribute as a parameter in the get-method.
    In your example, this is an element of the value node "X" containing the calculated attributes "Check{1,2}".
    To get the attribute values used to calculated the "Check{1,2}" value, you have to navigate up the context:
    element: element of "X", parameter of calc. attribute get-method
    element.node(): node "X"
    element.node().getParentElement(): node element containing "X" (remember it's a non-singleton)
    From the last node element you can get the attribute values to compute the value for the calculated attribute.
    Another solution using supply functions is described in Marcin's Weblog.
    Armin

  • Ordering presentation tables and columns in aswers

    Hi all
    I have a product dimension structured like :
    ProductDim
    All
    -BA
    ba name
    ba number
    -RA
    ra name
    ra number
    In answers the 'All' which is a presentation column is displayed after BA and RA which are presentation tables .Is there a way to change this order??
    Regards
    Adil

    No, unfortunately this is not possible. When opening a folder x, first all the underlying folders are shown, then the underlying columns (of folder x). The only workaround is to create a folder 'Folder All', holding a column 'Column All'.
    Regards,
    Stijn

  • Reading data from table and print the value based condition

    hi
    my table like this
    slno  |  value1 |  value2  |
    1            0            5
    2            5           10
    3           10          15
    assume n= 8 ( where  n is user define)
    i want output like
    number 8 between value  5 and  10
    plz help

    Hi,
    Try:
    Select 'Number '+ U_Value3 + ' Between '+ U_Value1'and 'U_Value2
    From [dbo\].[@UDT T0\]
    Where T0.U_Value3=[%0\] and T0.U_Value3 BETWEEN U_Value1 AND U_Value2
    Thanks,
    Gordon

  • Read from 2 tables, write only to one. Simple, but impossible??

    I've been messing about with various annotations for quite a while now, and I can't seem to figure out how to accomplish this seemingly simple task. I'm hoping somebody could explain to me the probably very obvious and simple mistake that I am making.
    I realize that question would otherwise point to problems in my database design and persistence strategy, but I can't seem to read from 2 tables, and write to only one. I have an entity bean that refers mainly to one table, but needs just one column of information from another table. It should not attempt to alter the secondary table, just join on it to get the one field it needs. So far, I've got the following:
    @Entity
    @Table(name = "ventureprofile")
    @SecondaryTable(name = "venture",
                    pkJoinColumns = @PrimaryKeyJoinColumn(name="ventureid"))
    @NamedQueries( {
            @NamedQuery(name = "Ventureprofile.findByVentureprofileid", query = "SELECT v FROM Ventureprofile v WHERE v.ventureprofileid = :ventureprofileid"),
            @NamedQuery(name = "Ventureprofile.findByVentureid", query = "SELECT v FROM Ventureprofile v WHERE v.ventureid = :ventureid"),
            @NamedQuery(name = "Ventureprofile.findByVenturesummary", query = "SELECT v FROM Ventureprofile v WHERE v.venturesummary = :venturesummary"),
            @NamedQuery(name = "Ventureprofile.findByLogoimagelocation", query = "SELECT v FROM Ventureprofile v WHERE v.logoimagelocation = :logoimagelocation"),
            @NamedQuery(name = "Ventureprofile.findByVisible", query = "SELECT v FROM Ventureprofile v WHERE v.visible = :visible ORDER BY v.venturename")
    public class Ventureprofile implements Serializable {
        @Id
        @GeneratedValue(strategy=GenerationType.AUTO, generator="Ventureprofile.ventureprofileid.seq")
        @SequenceGenerator(name="Ventureprofile.ventureprofileid.seq", sequenceName="ventureprofile_ventureprofileid_seq", allocationSize=1) 
        @Column(name = "ventureprofileid", nullable = false)
        private BigInteger ventureprofileid;      
        @Column(name = "ventureid", table="ventureprofile", nullable = false)
        private Long ventureid;
        @Column(name = "venturesummary")
        private String venturesummary;
        @Column(name = "logoimagelocation")
        private String logoimagelocation;
        @Column(name = "visible", nullable = false)
        private boolean visible;  
        @Column(table = "venture", name = "venturename", nullable=false, insertable=false, updatable=false)
        private String venturename;
    //... The extra column of data is "venturename", the tables are related by the column "ventureid". I contest, that since I have specified for read/write access no fields mapped to the 'venture' table (I specified with 'table=' any ambiguous columns), and described the table relationship via my @PrimaryKeyJoinColumn annotation, that toplink should not try to persist anything to the 'venture' table. However, I am getting the following exception:
    Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0 (Build b58g-fcs (09/07/2007))): oracle.toplink.essentials.exceptions.DatabaseException
    Internal Exception: org.postgresql.util.PSQLException: ERROR: null value in column "venturename" violates not-null constraint
    Error Code: 0
    Call: INSERT INTO venture (ventureid) VALUES (?)
            bind => [220]
    Query: InsertObjectQuery(VCMarkWeb.db.entity.Ventureprofile[ventureprofileid=220])
            at oracle.toplink.essentials.exceptions.DatabaseException.sqlException(DatabaseException.java:311)
    ...It seems pretty clear that toplink is trying to insert an empty row into the secondary table, and barfing since it is inserting no values, including those constrained to be nonnull. Anyway...I hope it's clear what's going on here, and perhaps somebody knows the right way to do this. Thanks fot your help!

    Tom and Cornelius,
    Thank you both for your ideas. This what I think I will do:
    1) Drive up to OWC (fortunately they are only about 15 miles away from where I live) and get a bigger HD and some more RAM.
    2) Copy the OS9 applications on the existing HD to a thumb drive.
    3) Install the new hard drive and memory
    4) Install OSX TIger and 9.2.2
    5) Maybe do the 4.1.8 firmware update also, maybe.
    6) Look around for a Superdrive and if I can get one for a good price, I'll do it otherwise I'll just use USB thumb drives if I need to copy something off the PB.
    One thing that I was fighting with the other day was that when I had the yoyo power supply plugged in and attached when the PB was in the kitchen, the batteries would not charge although the yoyo was outputting +24 VDC.
    I move everything to the garage, where I originally fixed the yoyo power supply, plug it in out there and the batteries started charging!!! Scratching my head...then I check the voltage between the metal barrel (with the Vsensing resistor attached between the metal shell and the ground wire) of power supply plug and the +24 VDC wire and there is 22 to 23 VDC with the batteries being charged. In the kitchen when they were not being charged, it was about 1.0 VDC. So I rotate the plug a little bit and the batteries start charging. Rotate it more and the batteries don't charge. Something else to do when I have spare time.
    Anyway, thanks for the help and suggestions.
    John

  • TouchUp Reading Order tool moves or just deletes page content!?

    Using Acrobat X to make documents 508 compliant. I've had a number of issues when trying to tag a figure, it ends up moving the figure to a different page or deleting it altogether. Also I've has issues when trying to adjust the reading order, content is moved or deleted.
    How can adjusting structure completely delete content? Really bad bug. Is anyone else seeing this? Thanks.

    Thank you for your comment. However I do not think this is a workable solution.
    My structure in the tags panel is ordered correctly, and the document exported from inDesign is tagged and ordered correctly. However, when I look at the reading order tab the reading order is wrong. I need to use the reading order tab to reorganize the order in which items are read by screen readers (this is as according to Adobe training, e.g. http://tv.adobe.com/watch/accessibility-adobe/preparing-indesign-files-for-accessibility/). Is there another tool that will allow me to organize the reading/tab order (without deleting some of the content in my tables)?
    I am also having the additional problem that sometimes, not always, when I use the reading order panel to reorganize reading order, my tables lose their tagging as tables - I am worried that this will mean screen readers will not recognize the data as a table and will not read it accordingly (by header cell and then content cell).
    Can you provide any help?
    Thank you.

  • Create/find tables and apply style

    Hello,
    I'm very new to scripting. I want to learn the basics like creating a table, creating anchored frames, textframes, etc.
    Now, I want to create/find tables in a document and I would like to apply styles. I saw a script to do this. When I paste the script in Extendscript CS4, than the program crash.
    The program crash in part 1. When I create another script with only part 2 (see //part 2) then there is no problem.
    What do i wrong? And can anyone tell me what part 1 of the script do?
    Thanks,
    // part 1
    // using your version; I'd prefer to return 0 if table not found
    function findTable(obj) {
             while (obj.constructor.name != "Table") {
            obj = obj.parent;
            if (obj.constructor.name == "Application") {
                throw "Can't find table"
        return obj
    // part 2
    var myTable = 0;
    if (app.documents.length > 0 && app.selection.length > 0)
        myTable = findTable(app.selection[0]);
    // check for at least enough rows for 1 top row, 1 body row, 1 bottom row
    if (myTable != 0 && myTable.rows.length >= 3) {
        // delete all rules; set insets to 0
        myTable.cells.everyItem().appliedCellStyle = "[None]";
        // format bottom row
        // (remember rows uses 0-based count)
        a = myTable.rows.length - 1;
        myTable.rows[a].cells.everyItem().appliedCellStyle = "4.cell_body_last";
        // format middle rows
        first = 1;
         last = myTable.rows.length - 2;
        for (a = first; a <= last; ++a)
            myTable.rows[a].cells.everyItem().appliedCellStyle = "3.cell_body";
        // format top row
        a = 0;
        myTable.rows[a].cells.everyItem().appliedCellStyle = "2.cell_header";

    Part 1 expects the text cursor to be anywhere inside a table -- either in the regular text, or with a cell, row, column, or the entire table selected.
    It walks "up" using its parent until it arrives at the table object itself.
    This will only work if the text cursor actually is anywhere inside a table. It does nothing when you are somewhere else, and it only works with the "current" table.

  • Line Item: After reading all your links and discussions

    From the links and the discussions I was referred to in a previous post, please correct me if I am wrong. I understood that with if a characteristic is going to have several values (defined in that case as "has cardinality"), then it is better to make that characteristic a line item.
    It has some advantages as a result of the fact that the line item dimension has no dimension table but only SID table.
    1--Does this make loading data faster Or, running queries faster?
    2--I also read that "line dimension on means that this dimension becomes part of fact table", can you explain this?
    3--Some of the experts said you create line item when the characteristics in the dimension is 20 or 30 % that of the fact table. Is this 20 or 30? And, are we comparing all the characteristics in all the dimensions in the Cube or just the one dimension which we want to make the line item?
    4--Also, I get the 20 or 30% of the Dimension but what it being compared to in the Fact Table?
    5--I didn't get the cardinality stuff well so any hints other than links will help.
    6--Finally, won't this easily make the designer run out of the 13 (16-3 reserved) available dimensions?
    7--If the Rule of thumb is dimension table size should be smaller than fact table, and line item dimensions makes this possible, isn't it in the same token killing the ratio of 16 dimension to 1 Fact table in a cube?
    8--Is this a consideration after data has been loaded into Cubes or during the design phase of the Cube?
    9--If this consideration is applicable only when there is data then how can you factor this into your design? How to wait until you are in trouble to fix the problem?
    Thanks

    HI Caud,
    1] Query reading performance will be improved. As it can access only Master data table and Fact table.
    Setting it as a Line Item dim also causes a b-tree index to be built instead of a bitmap index, but also embeds SID directly in the fact table, eliminating the dimension table.
    2] Line item Diemsion- when ever ur Dimension table contains a single Char then it is better to join ur master data table with the Fact table. So there will be connection with SID.
    3]U chooses the line item when ever there is a high cardinality. i.e if ur DIM table is 10%of Fact table then u will go with the Line item Dim.
    the percentage is w.r.t the number of records.
    4] its total number of records.
    5]Cardinality creates indexes on the Dimension table entries and there by you would see an improvement in performance.
    With Cardinality, you can assign a Dimension containing Multiple Characteristics
    6] It depends based ur business requirement and the type of data that u use.
    8] It is before loading into the cube.
    9]it is better to design at the initial stage it self.
    Refer this link..
    http://help.sap.com/saphelp_nw04/helpdata/en/a7/d50f395fc8cb7fe10000000a11402f/frameset.htm
    Regards-
    MM
    Assign points if it helps.
    It is better to assign points to all who ever replies to u. As they spent lot of time on these Threads.
    Message was edited by: vishnuC

Maybe you are looking for

  • Error while activating Proxy in BW to push data from XI

    Hi, I get an Error while trying to activate the Proxy for an Inbound Interface. Error mentioned is that the Import Structure created for the ABAP Interface (ZMI_RESELLER_MASTER_IN___BI0) is Unknown. Can someone please help me figuring out the issue?

  • "No System Fonts Available" when fonts are embedded

    I'm a writer using LaTeX to produce PDFs. I recently started to use an editor who uses acrobat for editing. I have sent him a PDF with all the fonts embedded [full fonts embedded, not just subsets], and the fonts show up that way on the "Fonts" tab o

  • PowerBook G4 keeps crashing now

    Hello, how is everyone doing? My PowerBook is crashing like crazy recently, never had such problem until about 2 weeks ago, now it does not even see the bluetooth it keeps saying no hardware is found

  • Cover Flow annoyance

    Cover Flow is cool. It lets you get to music quicker and looks pretty. But I'm over it. I want to turn it off. I'm and sick and tired of it switching to cover flow when i don't want it too. Prime example is when you are lying down - You put the ipod

  • Use of Tiger cd installation discs with ema \c power PC no dvd

    Purchased tiger for emac. Currently using OS X Jaguar. program came with DVD installation disc. Sent for and rec. Tiger CDs with exchange program. problem. . .unble to install with these CDs. Any suggestions? Thanks