Conversion Table Questions: problems converting tables to structured

I'm in the process of converting unstructed FM8 docs to structured docs using FM10 and DITA structure. Right now I'm trying to build a conversion table to structure the docs, but I'm having a lot of trouble with the tables. The main problem seems to be with the tgroup element since I can't figure out how to get the thead and tbody to wrap in the tgroup element.
Here is an example of one of the tables I'm trying to structure:
This is the Table section of the conversion table I've had the most success with:
And this is the result:
As you can see, the thead and tbody elements are not wrapped in tgroup and the structure is invalid. I've been playing around with the conversion table for several days now and can't seem to figure out how to fix this. If anyone has any suggestions, they would be greatly appreciated!
Thanks,
D'Arcy

D'Arcy,
  Here are a few observations that might help:
1) The structure you use within FM (which is what the conversion table helps create) need not be exactly the same as the structure you use in XML.
2) Do not confuse the element named table with a FrameMaker table.
3) As Michael has pointed out, the CALS table model used by DITA is a five-level structure:
table
  tgroup
    tbody
       row
         entry
while the FrameMaker table model has 4 levels:
table
  tbody
    row
      cell
4) FrameMaker can map between the 5-level structure and the 4-level structure in one of two ways, controlled by the element definitions (usually specified in an EDD), the read/write rules, and the DTD:
a) The element named table can be a container while the element named tgroup is the actual table. This model has a closer correspondence between the FrameMaker and the DITA table structure. Michael has pointed out one of its biggest weaknesses. If a FrameMaker table (regardless of its element name) has a title, then FrameMaker repeats the title on each page of a multipage table. However, if the element named table is a container and the actual table is an element named tgroup, the title is a container preceding the table and this automatic repetition does not happen.
b) If you are sure that your tables will always consist of a single tgroup, you don't have to use the tgroup element within FrameMaker. Make the element named table a FrameMaker table and include the read/write rule:
element "tgroup" unwrap;
FrameMaker will recreate the tgroup element whenever you save a document as XML. This model allows you to make the table title a FrameMaker table. However, you cannot use the element named title as both a FrameMaker table title and a container. Typically, therefore, people use the element named title as a container that is the title of things like chapters and sections and use an element named something like tabletitle for the title of tables.
Read/write rules like:
element "title" is fm element:
element "title" is fm table title element "tabletitle"'
let you save your documents as XML with both title and tabletitle represented as <title> in XML. You'll need to use a custom client or XSLT to map the XML element named title to either title or tabletitle depending on whether the XML element occurs within a table or not.
5) Your conversion table had one row with T: in column 1 and another with T:Format A in column 1; one mapped to table and the other to tgroup. The row with T:Format A would apply to all tables with the specified format, the other row would apply to all tables with other formats. These conversion table rows do not define a relationship between table and tgroup. Map T: to table if you want the model in 4b) above and to tgroup if you want the model in 4a). In the latter case, use an additional row with:
title?, tgroup
in column 1 and  table in column 2.
     --Lynne

Similar Messages

  • Conversion from word problems with images

    Hi ,
    I managed to make a conversion table to structure the documents of out company.I am having a proble with images.I am importing the word file to our template with a custom EDD document.When the import finishes I am having all images at almost correct places.The issue is when i apply the custom conversion table all the images at anchored at insertion point.The correct position would be at below current line.I am stuck and I can not find a solution to this.
    My EDD is as follows:
    EDD Version is 12.0
    Structured Application: ReportPlain
    F:\FramemakerBooks\Part B -Section 3.fm
    April 14, 2014
    Element (Container): Author
    General rule:          <TEXT>
    Text format rules
    In all contexts.
    Use paragraph format: ReportAuthor
    Element (Container): Emphasis
    General rule:          <TEXTONLY>
    Text format rules
    In all contexts.
    Text range.
    Use character format: Emphasis
    Element (Equation): Equation
    Element (Container): EquationPara
    General rule:          Equation
    Text format rules
    Element paragraph format: Equation
    Element (Container): Extract
    General rule:          (<TEXT> | Emphasis | Term | Superscript | Subscript | XRef)*
    Attribute list
    Name: ID           Unique ID           Optional
    Text format rules
    In all contexts.
    Use paragraph format: Extract
    Element (Container): Figure
    General rule:          (<TEXT> | Frame)*
    Attribute list
    Name: ID           Unique ID           Optional
    Name: XRefLabel           String           Optional
    Default:          Figure
    Name: Imported           Choice           Optional
    Choices:          Yes, No
    Default:          No
    Text format rules
    In all contexts.
    Use paragraph format: Figure
    Element (Footnote): Footnote
    General rule:          <TEXT>
    Text format rules
    In all contexts.
    Use paragraph format: Footnote
    If context is: * < Table
    Use paragraph format: TableFootnote
    Element (Graphic): GRAPHIC
    Initial graphic element format
    In all contexts.
    Insert anchored frame.
    Anchored Frame Object Style:FiguredCentered
    Element (Graphic): Frame
    Initial graphic element format
    If context is: Figure[Imported = "Yes"]
    Insert imported graphic file.
    Else
    Insert anchored frame.
    Element (Container): Head
    General rule:          <TEXT>
    Text format rules
    Count ancestors named:          Section
    If level is: 1
    Context label: H1
    Use paragraph format: Heading1
    Else, if level is: 2
    Context label: H2
    Use paragraph format: Heading2
    Else, if level is: 3
    Context label: H3
    Use paragraph format: Heading3
    Else, if level is: 4
    Context label: H4
    Use paragraph format: Heading4
    Else, if level is: 5
    Context label: H5
    Use paragraph format: HeadingRunIn
    Else
    Numbering properties
    Autonumber format:
    If context is: {first} < Report
    Use paragraph format: ReportTitle
    Else, if context is: HeadingRunIn
    Use paragraph format: HeadingRunIn
    Element (Container): HeadingRunIn
    General rule:          Head, Para+
    Element (Container): Item
    General rule:          (<TEXT> | Emphasis | Term | Superscript | Subscript | XRef | Para)*
    Format rules for first paragraph in element
    If context is: List[Type = "Plain"]
    No additional formatting.
    Else, if context is: List[Type = "Bulleted"]
    Use paragraph format: Bulleted clean
    Else, if context is: {first}
    Use paragraph format: Numbered1
    Else
    Use paragraph format: Numbered
    Element (Container): List
    General rule:          Item+
    Attribute list
    Name: ID           Unique ID           Optional
    Name: Type           Choice           Optional
    Choices:          Plain, Bulleted, Numbered
    Default:          Bulleted
    Automatic insertions
    Automatically insert child:          Item
    Element (Container): Para
    General rule:          (<TEXT> | Emphasis | Term | Superscript | Subscript | XRef | Footnote | Table )*
    Attribute list
    Name: ID           Unique ID           Optional
    Text format rules
    If context is: {after Head }
    Use paragraph format: Body
    Else, if context is: {after List}
    Use paragraph format: BodyAfterHead
    Else
    Use paragraph format: Body
    Element (Container): Part
    Valid as the highest-level element.
    General rule:          (Para | Footnote | Table | Section )*
    Attribute list
    Name: ID           Unique ID           Optional
    Control flags: Read-only
    Automatic insertions
    Automatically insert child:          Head
    Text format rules
    Element paragraph format: Body
    Element (Container): Purpose
    General rule:          <TEXT>
    Text format rules
    Element paragraph format: ReportPurpose
    Element (Container): Section
    General rule:          (Section,Head |Section | Para | List  | Table | Figure  | HeadingRunIn )*
    Attribute list
    Name: ID           Unique ID           Optional
    Name: XRefLabel           String           Optional
    Default:          Section
    Automatic insertions
    Automatically insert child:          Head
    Element (Container): Subscript
    General rule:          <TEXTONLY>
    Text format rules
    In all contexts.
    Text range.
    Font properties
    Superscript/Subscript: Subscript
    Element (Container): Superscript
    General rule:          <TEXTONLY>
    Text format rules
    In all contexts.
    Text range.
    Font properties
    Superscript/Subscript: Superscript
    Element (Table): Table
    General rule:          TableTitle?, TableHead?, TableBody
    Attribute list
    Name: ID           Unique ID           Optional
    Control flags: Read-only
    Name: XRefLabel           String           Optional
    Default:          Table
    Control flags: Read-only
    Initial table format
    In all contexts.
    Table format: Format A
    Element (Table Body): TableBody
    General rule:          TableRow+
    Element (Table Cell): TableCell
    General rule:          (<TEXT> | Emphasis | Term | Superscript | Subscript | XRef | Frame| Para)*
    Text format rules
    Element paragraph format: Bodycell
    Element (Table Heading): TableHead
    General rule:          TableHeadRow+
    Element (Table Cell): TableHeadCell
    General rule:          <TEXT>
    Element (Table Row): TableHeadRow
    General rule:          TableHeadCell+
    Element (Table Row): TableRow
    General rule:          TableCell+
    Element (Table Title): TableTitle
    General rule:          <TEXT>
    Text format rules
    Element paragraph format: TableTitle
    Element (Container): Term
    General rule:          <TEXTONLY>
    Text format rules
    In all contexts.
    Text range.
    Use character format: Emphasis
    Element (CrossReference): XRef
    Attribute list
    Name: IDRef           ID Reference           Required
    Control flags: Read-only
    Limit values for format change list properties
    First indent
    Maximum: 39.0"
    Minimum: 0.0"
    Left indent
    Maximum: 39.0"
    Minimum: 0.0"
    Right indent
    Maximum: 39.0"
    Minimum: 0.0"
    Space above
    Maximum: 32767.0 pt
    Minimum: -32767.0 pt
    Space below
    Maximum: 32767.0 pt
    Minimum: -32767.0 pt
    Line spacing
    Maximum: 32767.0 pt
    Minimum: -32767.0 pt
    Tab stop position
    Maximum: 39.0"
    Minimum: 0.0"
    Font size
    Maximum: 400.0 pt
    Minimum: 2.0 pt
    Spread
    Maximum: 1000.0%
    Minimum: -1000.0%
    Stretch
    Maximum: 1000.0%
    Minimum: 10.0%
    Cell margins
    Top
    Maximum: 32767.0 pt
    Minimum: 0.0 pt
    Bottom
    Maximum: 32767.0 pt
    Minimum: 0.0 pt
    Left
    Maximum: 32767.0 pt
    Minimum: 0.0 pt
    Right
    Maximum: 32767.0 pt
    Minimum: 0.0 pt
    And my conversion table is:
    Wrap this object or objects          In this element          With this qualifier
    TC:          TableCell
    P:Body          Para
    P:Normal          Para
    P:Heading 5          Head          head5
    E:Head[head5],(Para | Frame | List | Table )*          Section          section5
    P:Heading 4          Head          head4
    E:Head[head4],(Para | Frame | List | Table |  [section5])*          Section          section4
    P:Heading 3          Head          head3
    Head[head3],(Para | List | Frame | Table | [section4])*          Section          section3
    P:Heading 2          Head          head2
    Head[head2],(Para | List | Frame | Table | [section3])*          Section          section2
    P:Heading 1          Head          head1
    Head[head1],(Para | List | Frame | Table | [section2])*          Section          section
    T:Table          Table (promote)
    TT:          TableTitle
    TH:          TableHead
    TB:          TableBody
    TF:          FOOTING
    TR:          TableRow
    RE:RootElement          Part
    P:List Paragraph          Item
    Item+          List
    G:          GRAPHIC(promote)
    RE:RootElement          Part
    I am almost done with the template"Application"I just need to place the pictures in the correct position.Can anyone point me to the right direction?
    Thanks a lot in advance

    Dimitris,
        I know you originally posted this question on the general FrameMaker forum. I suggest below that you post a follow-up question there.
       The structure-based part of the issue is that neither a conversion table nor an EDD can change properties of an existing anchored frame. It seems that when you open your Word document in FrameMaker, the graphics come in positioned at the insertion point. That doesn't change when you apply the conversion table. Your EDD does specify object style FiguredCentered as the initial format for GRAPHIC elements. The keyword here is "initial". The EDD can indicate a style for new anchored frames that are created by inserting an element. It does not allow you to change existing anchored frames.
      So the real problem is how to make a global change to all existing anchored frames (either assigning an object style or changing the position to Below Current Line) so that you don't have to change them one at a time. I am not aware of a way to do so with existing FrameMaker commands. You could use a script or plug-in, or save the document as MIF and make a global change with a text editor in the MIF file. You might ask on the general FrameMaker forum if someone there knows an easier approach.
           --Lynne

  • Namespaces in conversion table

    We're encountering an issue with the use of namespaces with elements in a conversion table. The Adobe documentation seems to suggest that namespaces are supported in Frame, and, in documents that are already structured, we encounter no problems.
    However, when we attempt to convert an unstructured doc using namespaced elements in the second column of the conversion table, the process won't work. We get errors for every element that includes a namespace prefix.
    We've tried to get around the issue by assigning qualifiers in the third column and then using those in the first column, but with no luck.
    Any thoughts or suggestions would be much appreciated.

    Quoted from the Structure Developer Reference:
    The following characters are not allowed in an element tag, but
    can appear in a format or qualifier tag if you precede them with a backslash (\) in the table:
    ( ) & | , * + ? % [ ] : \
    end quote.
    The structure conversion tables have been around far longer than namespaces in XML, so we just have to hope that they get updated soon.
    You will also find that some of FrameMaker's building blocks and EDD context rules have trouble with the colon character where it has long been used by FrameMaker for other purposes.
    I tend to rename elements that have an XML namespace using XSLT, eg:
    xml:lang in XML is transformed into xml.lang in FrameMaker which makes it possible to write EDD rules that refer to the value of the xml.lang attribute.
    Ian

  • Internal Table and Structures

    Hi,
    I am a beginer. I know how to create a structure and how to create an internal table using ABAP/4. My problem is, i don't understand where to use internal table and structure, also i find myself very confused about the explicit work areas.
    Plese someone show me a program by explaining all of this clearly.

    Hi
    Internal tables are the core of ABAP. They are like soul of a body. For any program we use
    internal tables extensively. We can use Internal tables like normal data base tables only, but the
    basic difference is the memory allocated for internal tables is temporary. Once the program is
    closed the memory allocated for internal tables will also be out of memory.
    But while using the internal tables, there are many performance issues to be considered. i.e which
    type of internal table to be used for the program..like standard internal table, hashed internal
    table or sorted internal table etc..
    Internal tables
    Internal tables provide a means of taking data from a fixed structure and storing it in working memory in ABAP. The data is stored line by
    line in memory, and each line has the same structure. In ABAP, internal tables fulfill the function of arrays. Since they are dynamic data
    objects, they save the programmer the task of dynamic memory management in his or her programs. You should use internal tables
    whenever you want to process a dataset with a fixed structure within a program. A particularly important use for internal tables is for
    storing and formatting data from a database table within a program. They are also a good way of including very complicated data
    structures in an ABAP program.
    Like all elements in the ABAP type concept, internal tables can exist both as data types and as data objects A data type is the abstract
    description of an internal table, either in a program or centrally in the ABAP Dictionary, that you use to create a concrete data object. The
    data type is also an attribute of an existing data object.
    Internal Tables as Data Types
    Internal tables and structures are the two structured data types in ABAP. The data type of an internal table is fully specified by its line type,
    key, and table type.
    Line type
    The line type of an internal table can be any data type. The data type of an internal table is normally a structure. Each component of the
    structure is a column in the internal table. However, the line type may also be elementary or another internal table.
    Key
    The key identifies table rows. There are two kinds of key for internal tables - the standard key and a user-defined key. You can specify
    whether the key should be UNIQUE or NON-UNIQUE. Internal tables with a unique key cannot contain duplicate entries. The uniqueness
    depends on the table access method.
    If a table has a structured line type, its default key consists of all of its non-numerical columns that are not references or themselves
    internal tables. If a table has an elementary line type, the default key is the entire line. The default key of an internal table whose line type
    is an internal table, the default key is empty.
    The user-defined key can contain any columns of the internal table that are not references or themselves internal tables. Internal tables
    with a user-defined key are called key tables. When you define the key, the sequence of the key fields is significant. You should remember
    this, for example, if you intend to sort the table according to the key.
    Table type
    The table type determines how ABAP will access individual table entries. Internal tables can be divided into three types:
    Standard tables have an internal linear index. From a particular size upwards, the indexes of internal tables are administered as trees. In
    this case, the index administration overhead increases in logarithmic and not linear relation to the number of lines. The system can access
    records either by using the table index or the key. The response time for key access is proportional to the number of entries in the table.
    The key of a standard table is always non-unique. You cannot specify a unique key. This means that standard tables can always be filled
    very quickly, since the system does not have to check whether there are already existing entries.
    Sorted tables are always saved sorted by the key. They also have an internal index. The system can access records either by using the
    table index or the key. The response time for key access is logarithmically proportional to the number of table entries, since the system
    uses a binary search. The key of a sorted table can be either unique or non-unique. When you define the table, you must specify whether
    the key is to be unique or not. Standard tables and sorted tables are known generically as index tables.
    Hashed tables have no linear index. You can only access a hashed table using its key. The response time is independent of the number of
    table entries, and is constant, since the system access the table entries using a hash algorithm. The key of a hashed table must be unique.
    When you define the table, you must specify the key as UNIQUE.
    Generic Internal Tables
    Unlike other local data types in programs, you do not have to specify the data type of an internal table fully. Instead, you can specify a
    generic construction, that is, the key or key and line type of an internal table data type may remain unspecified. You can use generic
    internal tables to specify the types of field symbols and the interface parameters of procedures . You cannot use them to declare data
    objects.
    Internal Tables as Dynamic Data Objects
    Data objects that are defined either with the data type of an internal table, or directly as an internal table, are always fully defined in
    respect of their line type, key and access method. However, the number of lines is not fixed. Thus internal tables are dynamic data objects,
    since they can contain any number of lines of a particular type. The only restriction on the number of lines an internal table may contain are
    the limits of your system installation. The maximum memory that can be occupied by an internal table (including its internal administration)
    is 2 gigabytes. A more realistic figure is up to 500 megabytes. An additional restriction for hashed tables is that they may not contain more
    than 2 million entries. The line types of internal tables can be any ABAP data types - elementary, structured, or internal tables. The
    individual lines of an internal table are called table lines or table entries. Each component of a structured line is called a column in the
    internal table.
    Choosing a Table Type
    The table type (and particularly the access method) that you will use depends on how the typical internal table operations will be most
    frequently executed.
    Standard tables
    This is the most appropriate type if you are going to address the individual table entries using the index. Index access is the quickest
    possible access. You should fill a standard table by appending lines (ABAP APPEND statement), and read, modify and delete entries by
    specifying the index (INDEX option with the relevant ABAP command). The access time for a standard table increases in a linear relationship
    with the number of table entries. If you need key access, standard tables are particularly useful if you can fill and process the table in
    separate steps. For example, you could fill the table by appending entries, and then sort it. If you use the binary search option with key
    access, the response time is logarithmically proportional to the number of table entries.
    Sorted tables
    This is the most appropriate type if you need a table which is sorted as you fill it. You fill sorted tables using the INSERT statement. Entries
    are inserted according to the sort sequence defined through the table key. Any illegal entries are recognized as soon as you try to add
    them to the table. The response time for key access is logarithmically proportional to the number of table entries, since the system always
    uses a binary search. Sorted tables are particularly useful for partially sequential processing in a LOOP if you specify the beginning of the
    table key in the WHERE condition.
    Hashed tables
    This is the most appropriate type for any table where the main operation is key access. You cannot access a hashed table using its index.
    The response time for key access remains constant, regardless of the number of table entries. Like database tables, hashed tables always
    have a unique key. Hashed tables are useful if you want to construct and use an internal table which resembles a database table or for
    processing large amounts of data.
    Creating Internal Tables
    Like other elements in the ABAP type concept, you can declare internal tables as abstract data
    types in programs or in the ABAP Dictionary, and then use them to define data objects.
    Alternatively, you can define them directly as data objects. When you create an internal table as a
    data object, you should ensure that only the administration entry which belongs to an internal
    table is declared statically. The minimum size of an internal table is 256 bytes. This is important if an
    internal table occurs as a component of an aggregated data object, since even empty internal
    tables within tables can lead to high memory usage. (In the next functional release, the size of the
    table header for an initial table will be reduced to 8 bytes). Unlike all other ABAP data objects, you
    do not have to specify the memory required for an internal table. Table rows are added to and
    deleted from the table dynamically at runtime by the various statements for adding and deleting
    records.
    You can create internal tables in different types.
    You can create standard internal table and then make it sort in side the program.
    The same way you can change to hashed internal tables also.
    There will be some performance issues with regard to standard internal tables/ hashed internal
    tables/ sorted internal tables.
    Internal table types
    This section describes how to define internal tables locally in a program. You can also define internal tables globally as data types in the
    ABAP Dictionary.
    Like all local data types in programs , you define internal tables using the TYPES statement. If you do not refer to an existing table type
    using the TYPE or LIKE addition, you can use the TYPES statement to construct a new local internal table in your program.
    TYPES <t> TYPE|LIKE <tabkind> OF <linetype> [WITH <key>]
    [INITIAL SIZE <n>].
    After TYPE or LIKE, there is no reference to an existing data type. Instead, the type constructor occurs:
    <tabkind> OF <linetype> [WITH <key>]
    The type constructor defines the table type <tabkind>, the line type <linetype>, and the key <key> of the internal table <t>.
    You can, if you wish, allocate an initial amount of memory to the internal table using the INITIAL SIZE addition.
    Table type
    You can specify the table type <tabkind> as follows:
    Generic table types
    INDEX TABLE
    For creating a generic table type with index access.
    ANY TABLE
    For creating a fully-generic table type.
    Data types defined using generic types can currently only be used for field symbols and for interface parameters in procedures . The generic
    type INDEX TABLE includes standard tables and sorted tables. These are the two table types for which index access is allowed. You cannot
    pass hashed tables to field symbols or interface parameters defined in this way. The generic type ANY TABLE can represent any table. You
    can pass tables of all three types to field symbols and interface parameters defined in this way. However, these field symbols and
    parameters will then only allow operations that are possible for all tables, that is, index operations are not allowed.
    Fully-Specified Table Types
    STANDARD TABLE or TABLE
    For creating standard tables.
    SORTED TABLE
    For creating sorted tables.
    HASHED TABLE
    For creating hashed tables.
    Fully-specified table types determine how the system will access the entries in the table in key operations. It uses a linear search for
    standard tables, a binary search for sorted tables, and a search using a hash algorithm for hashed tables.
    Line type
    For the line type <linetype>, you can specify:
    Any data type if you are using the TYPE addition. This can be a predefined ABAP type, a local type in the program, or a data type from the
    ABAP Dictionary. If you specify any of the generic elementary types C, N, P, or X, any attributes that you fail to specify (field length, number
    of decimal places) are automatically filled with the default values. You cannot specify any other generic types.
    Any data object recognized within the program at that point if you are using the LIKE addition. The line type adopts the fully-specified data
    type of the data object to which you refer. Except for within classes, you can still use the LIKE addition to refer to database tables and
    structures in the ABAP Dictionary (for compatibility reasons).
    All of the lines in the internal table have the fully-specified technical attributes of the specified data type.
    Key
    You can specify the key <key> of an internal table as follows:
    [UNIQUE|NON-UNIQUE] KEY <col1> ... <col n>
    In tables with a structured line type, all of the components <coli> belong to the key as long as they are not internal tables or references,
    and do not contain internal tables or references. Key fields can be nested structures. The substructures are expanded component by
    component when you access the table using the key. The system follows the sequence of the key fields.
    [UNIQUE|NON-UNIQUE] KEY TABLE LINE
    If a table has an elementary line type (C, D, F, I, N, P, T, X), you can define the entire line as the key. If you try this for a table whose line
    type is itself a table, a syntax error occurs. If a table has a structured line type, it is possible to specify the entire line as the key. However,
    you should remember that this is often not suitable.
    [UNIQUE|NON-UNIQUE] DEFAULT KEY
    This declares the fields of the default key as the key fields. If the table has a structured line type, the default key contains all non-numeric
    columns of the internal table that are not and do not contain references or internal tables. If the table has an elementary line type, the
    default key is the entire line. The default key of an internal table whose line type is an internal table, the default key is empty.
    Specifying a key is optional. If you do not specify a key, the system defines a table type with an arbitrary key. You can only use this to
    define the types of field symbols and the interface parameters of procedures . For exceptions, refer to Special Features of Standard Tables.
    The optional additions UNIQUE or NON-UNIQUE determine whether the key is to be unique or non-unique, that is, whether the table can
    accept duplicate entries. If you do not specify UNIQUE or NON-UNIQUE for the key, the table type is generic in this respect. As such, it can
    only be used for specifying types. When you specify the table type simultaneously, you must note the following restrictions:
    You cannot use the UNIQUE addition for standard tables. The system always generates the NON-UNIQUE addition automatically.
    You must always specify the UNIQUE option when you create a hashed table.
    Initial Memory Requirement
    You can specify the initial amount of main memory assigned to an internal table object when you define the data type using the following
    addition:
    INITIAL SIZE <n>
    This size does not belong to the data type of the internal table, and does not affect the type check. You can use the above addition to
    reserve memory space for <n> table lines when you declare the table object.
    When this initial area is full, the system makes twice as much extra space available up to a limit of 8KB. Further memory areas of 12KB each
    are then allocated.
    You can usually leave it to the system to work out the initial memory requirement. The first time you fill the table, little memory is used. The
    space occupied, depending on the line width, is 16 <= <n> <= 100.
    It only makes sense to specify a concrete value of <n> if you can specify a precise number of table entries when you create the table and
    need to allocate exactly that amount of memory (exception: Appending table lines to ranked lists). This can be particularly important for
    deep-structured internal tables where the inner table only has a few entries (less than 5, for example).
    To avoid excessive requests for memory, large values of <n> are treated as follows: The largest possible value of <n> is 8KB divided by the
    length of the line. If you specify a larger value of <n>, the system calculates a new value so that n times the line width is around 12KB.
    Examples
    TYPES: BEGIN OF LINE,
    COLUMN1 TYPE I,
    COLUMN2 TYPE I,
    COLUMN3 TYPE I,
    END OF LINE.
    TYPES ITAB TYPE SORTED TABLE OF LINE WITH UNIQUE KEY COLUMN1.
    The program defines a table type ITAB. It is a sorted table, with line type of the structure LINE and a unique key of the component
    COLUMN1.
    TYPES VECTOR TYPE HASHED TABLE OF I WITH UNIQUE KEY TABLE LINE.
    TYPES: BEGIN OF LINE,
    COLUMN1 TYPE I,
    COLUMN2 TYPE I,
    COLUMN3 TYPE I,
    END OF LINE.
    TYPES ITAB TYPE SORTED TABLE OF LINE WITH UNIQUE KEY COLUMN1.
    TYPES: BEGIN OF DEEPLINE,
    FIELD TYPE C,
    TABLE1 TYPE VECTOR,
    TABLE2 TYPE ITAB,
    END OF DEEPLINE.
    TYPES DEEPTABLE TYPE STANDARD TABLE OF DEEPLINE
    WITH DEFAULT KEY.
    The program defines a table type VECTOR with type hashed table, the elementary line type I and a unique key of the entire table line. The
    second table type is the same as in the previous example. The structure DEEPLINE contains the internal table as a component. The table
    type DEEPTABLE has the line type DEEPLINE. Therefore, the elements of this internal table are themselves internal tables. The key is the
    default key - in this case the column FIELD. The key is non-unique, since the table is a standard table.
    Internal table objects
    Internal tables are dynamic variable data objects. Like all variables, you declare them using the DATA statement. You can also declare static
    internal tables in procedures using the STATICS statement, and static internal tables in classes using the CLASS-DATA statement. This
    description is restricted to the DATA statement. However, it applies equally to the STATICS and CLASS-DATA statements.
    Reference to Declared Internal Table Types
    Like all other data objects, you can declare internal table objects using the LIKE or TYPE addition of the DATA statement.
    DATA <itab> TYPE <type>|LIKE <obj> [WITH HEADER LINE].
    Here, the LIKE addition refers to an existing table object in the same program. The TYPE addition can refer to an internal type in the
    program declared using the TYPES statement, or a table type in the ABAP Dictionary.
    You must ensure that you only refer to tables that are fully typed. Referring to generic table types (ANY TABLE, INDEX TABLE) or not
    specifying the key fully is not allowed (for exceptions, refer to Special Features of Standard Tables).
    The optional addition WITH HEADER line declares an extra data object with the same name and line type as the internal table. This data
    object is known as the header line of the internal table. You use it as a work area when working with the internal table (see Using the
    Header Line as a Work Area). When you use internal tables with header lines, you must remember that the header line and the body of the
    table have the same name. If you have an internal table with header line and you want to address the body of the table, you must indicate
    this by placing brackets after the table name (<itab>[]). Otherwise, ABAP interprets the name as the name of the header line and not of the
    body of the table. You can avoid this potential confusion by using internal tables without header lines. In particular, internal tables nested
    in structures or other internal tables must not have a header line, since this can lead to ambiguous expressions.
    TYPES VECTOR TYPE SORTED TABLE OF I WITH UNIQUE KEY TABLE LINE.
    DATA: ITAB TYPE VECTOR,
    JTAB LIKE ITAB WITH HEADER LINE.
    MOVE ITAB TO JTAB. <- Syntax error!
    MOVE ITAB TO JTAB[].
    The table object ITAB is created with reference to the table type VECTOR. The table object JTAB has the same data type as ITAB. JTAB also
    has a header line. In the first MOVE statement, JTAB addresses the header line. Since this has the data type I, and the table type of ITAB
    cannot be converted into an elementary type, the MOVE statement causes a syntax error. The second MOVE statement is correct, since
    both operands are table objects.
    Declaring New Internal Tables
    You can use the DATA statement to construct new internal tables as well as using the LIKE or TYPE addition to refer to existing types or
    objects. The table type that you construct does not exist in its own right; instead, it is only an attribute of the table object. You can refer to
    it using the LIKE addition, but not using TYPE. The syntax for constructing a table object in the DATA statement is similar to that for defining
    a table type in the TYPES statement.
    DATA <itab> TYPE|LIKE <tabkind> OF <linetype> WITH <key>
    [INITIAL SIZE <n>]
    [WITH HEADER LINE].
    As when you define a table type , the type constructor
    <tabkind> OF <linetype> WITH <key>
    defines the table type <tabkind>, the line type <linekind>, and the key <key> of the internal table <itab>. Since the technical attributes of
    data objects are always fully specified, the table must be fully specified in the DATA statement. You cannot create generic table types (ANY
    TABLE, INDEX TABLE), only fully-typed tables (STANDARD TABLE, SORTED TABLE, HASHED TABLE). You must also specify the key and whether
    it is to be unique (for exceptions, refer to Special Features of Standard Tables).
    As in the TYPES statement, you can, if you wish, allocate an initial amount of memory to the internal table using the INITIAL SIZE addition.
    You can create an internal table with a header line using the WITH HEADER LINE addition. The header line is created under the same
    conditions as apply when you refer to an existing table type.
    DATA ITAB TYPE HASHED TABLE OF SPFLI
    WITH UNIQUE KEY CARRID CONNID.
    The table object ITAB has the type hashed table, a line type corresponding to the flat structure SPFLI from the ABAP Dictionary, and a
    unique key with the key fields CARRID and CONNID. The internal table ITAB can be regarded as an internal template for the database table
    SPFLI. It is therefore particularly suitable for working with data from this database table as long as you only access it using the key.

  • Capturing a nested "Section" hierarchy with a Conversion Table?

    (Frame 9) - I'm using  a Conversion Table to convert a client's unstructured documents to structured. Much of the structure is importing with a certain amount of success, but I can't figure out how to capture the nested hierarchy. The client's template uses the same "Section" element with a "Title" child element for each level of the document.
    I can capture the document headings from the H1, H2, H3 paragraph tags form the old document and wrap them in "Title" elements with H1, H2, H3 qualifiers but I can't figure out how to then wrap the Title elements in the corresponding Section elements that reflect the hierarchy levels. Frame must have an internal qualifier for the Section elements but I can't figure out how to look it up?
    Thanks, Chris

    Chris,
    It should work fine if you have the qualifiers properly specified in the rules for wrapping the sections. Here is a link to a working sample that shows how it is done, which coincidentally also uses Section elements (but Heading elements in place of Title elements):
    http://www.weststreetconsulting.com/WSC_ResourceDownloads.htm
    Get the FrameSLT sample.
    Russ

  • Conversion Table: Image with Title

    I'm using conversation tables to move from Unstructured FM8 to Structured (DITA) FM10.
    I am trying to move the existing tables and graphics with titles into the DITA structure.  My understanding is that in DITA, it should look like this:
    So I've developed my conversion table to look like this:
    But when I run Structure Current Document, it doesn't wrap the (title[fig], image) in the figure element:
    The one part that seems odd to me is that when I generate the conversion table, I don't see any row that represents the image element itself.  Is that the problem?  Is there something else that I should be doing?
    Thanks!

    You need a row that has "G:" in column 1 and "image" in column 2 to indicate that anchored frames should map to the image element.
                  --Lynne

  • Font sizes between  Photoshop and Edge - Any Accurate conversion table?

    I have been trying to make sense of the font sizes between  Photoshop and Edge. It seems that the conversion tables I have found do not actually give the right numbers and I am wondering if there is a table from Adobe that would make it easy to have the right size rather than an approximation.
    I prefer to use text in Edge rather than Photoshop for many different reasons one being dynamic text.
    For example a font in Photoshop in a 780 x 475 image is 8pt - In Edge, according to conversion tables it should be 11 px but it is totally wrong. It needs to be closer to 30 px to be about the same.
    So, Adobe Team, any documentation on that?

    By the way, I have to correct the numbers but they still do not make too much sense. The artist gave me a 300 dpi file so of course the px size what wrong. After converting the file to 72 dpi, the font size happens to be 33.33 pt or 40 px which is now way too big in Edge.  It looks like the size my just be the same 33.33 pt would be 33.33 px. Is this correct?

  • To which table the structure plknzea belongs

    i need to find out the table to which this sturcture(plknzea) belongs.
    how the table fplt is related to table aufk

    This structure is only used in two programs to hold certain data from screen fields.  Depending on certain values of these fields, it sets a value to view V_T350_P, which is a view over T350.
    Code from L0I04I10.
      IF PLKNZEA-SOFT EQ YAUSW.
        V_T350_P-PLKNZ = YAUFT_SOFT.
      ELSE.
        IF PLKNZEA-GEPL EQ YAUSW.
          V_T350_P-PLKNZ = YAUFT_GEPL.
        ELSE.
          IF PLKNZEA-UNGP EQ YAUSW.
            V_T350_P-PLKNZ = YAUFT_UNGP.
          ENDIF.
        ENDIF.
      ENDIF.
    It does something simular in the other program.
    Code from LCOIHI06.
      CLEAR CAUFVD-PLKNZ.
      IF  PLKNZEA-UNGP = YX.
        CAUFVD-PLKNZ = SPACE.
      ELSEIF PLKNZEA-GEPL = YX.
        CAUFVD-PLKNZ = 1.
      ELSEIF PLKNZEA-SOFT = YX.
        CAUFVD-PLKNZ = 2.
      ENDIF.
    Does this answer your question?
    Regards,
    Rich Heilman

  • Reference table of structure LBBIL_INVOICE ?

    Hi Expert,
    I want to create smartform based on standard SAP program.
    Printing Program : RLB_INVOICE
    Smartforms : SF_LB_INVOICE
    I have problem during change smartform. The interface of smartform is IS_BIL_INVOICE TYPE LBBIL_INVOICE. This structure contain of other table type or other structure. I think this structure have complete data. But functional design always create design using database table that I must fetch the data.
    Is there any body can tell me what is reference table of each element of structure LBBIL_INVOICE ?
    Thanks beforehand.

    Hi ,
    These structures are deep structures and you  will have  the table  entered  as a field of this structure .
    All the values are populated in these structures . Else copy the standard driver program  and  the key field is always populated in nast table get the keyfield from nast table ( nast  structure gets populated  autmatically  check in the std driver program )
    eg   (   move nast-objky(10) to g_ebeln   )
    based on this key field fetch all the other values you require in the driver program and pass it to your smart form .But i must say this is  not a smart  thing to do if you already have all the data available in the  standard structure .
    give your  driver program and smartform name in NACE txn. also define the output type.  all the other data  retrival  can also be done in the code editor of smart form  in case you need some other values at a later stage.here is the sample code
    FORM GET_DATA .
    check not nast-objky is initial.
      move nast-objky(10) to g_ebeln.
    ENDFORM.                    " GET_DATA
    *&      Form  GET_FORMNAME
          text
    -->  p1        text
    <--  p2        text
    FORM GET_FORMNAME .
    select single sform
        from tnapr
        into tnapr-sform
       where kschl = nast-kschl " Output Type
         and nacha = nast-nacha " Message transmission
         and kappl = nast-kappl." Application
      if sy-subrc = 0.
        g_formname = tnapr-sform.
    endif.
    ENDFORM.                    " GET_FORMNAME
    *&      Form  ZCALLFORM
          text
    -->  p1        text
    <--  p2        text
    FORM ZCALLFORM .
    call function 'SSF_FUNCTION_MODULE_NAME'
      exporting
        formname                 = g_formname
      VARIANT                  = ' '
      DIRECT_CALL              = ' '
    importing
       fm_name                  = g_fmname
    EXCEPTIONS
       NO_FORM                  = 1
       NO_FUNCTION_MODULE       = 2
       OTHERS                   = 3
    if sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    call function g_fmname
      exporting
      ARCHIVE_INDEX              =
      ARCHIVE_INDEX_TAB          =
      ARCHIVE_PARAMETERS         =
      CONTROL_PARAMETERS         =
      MAIL_APPL_OBJ              =
      MAIL_RECIPIENT             =
      MAIL_SENDER                =
      OUTPUT_OPTIONS             =
      USER_SETTINGS              = 'X'
        im_ebeln                   = g_ebeln
    IMPORTING
      DOCUMENT_OUTPUT_INFO       =
      JOB_OUTPUT_INFO            =
      JOB_OUTPUT_OPTIONS         =
    exceptions
       formatting_error           = 1
       internal_error             = 2
       send_error                 = 3
       user_canceled              = 4
       others                     = 5
    if sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    ENDFORM.                    " ZCALLFORM
    *&      Form  ZUPDATENAKT
          text
    -->  p1        text
    <--  p2        text
    FORM ZUPDATENAKT .
    nast-vstat = 1.
      nast-usnam = sy-uname.
      nast-datvr = sy-datum.
      nast-uhrvr = sy-uzeit.
      call function 'RV_MESSAGE_UPDATE_SINGLE'
        exporting
          msg_nast = nast.
    ENDFORM.                    " ZUPDATENAKT

  • Where can I found table or structure changes across different releases ?

    Hi !
    Just one question:
    I would like to found where can I see tables or structures changes across differents releases of SAP R/3?, i tried to found a doc about this... but i couldn't found it.
    For example, which table have been modify form version 4.x to 4.z, i mean fields added or modified, etc...
    Thanks in advance,
    Albio.-

    Hi Albio,
    You can do this. You can check the activation log of any table which you have to find for change history.
    Just go to se11 and type the table name click on display and then go to utilities -> then activation log, it will show you all the changes made to table
    Regards
    Sumit Bhutani
    <b>Ps reward pts if helpful</b>

  • Crash while launching in "building color conversion tables"

    Photoshop CS6 crashes while "building color conversion tables"  I reinstalled the program but it still hangs up at this point.  please help!

    I've only seen 3 things that can cause a crash at that point: corrupt profiles (mostly display profiles), corrupt information coming from the OS about the system profiles, and bad floating point units in CPUs.
    First thing to check is the display profiles. If setting them to sRGB doesn't solve the crash, it might be a bug in the OS profile cache.  And let's hope it isn't the CPU, because those problems are a @$%^@#%# to track down in modern processors.

  • Conversion tables and table entries

    I'm working on a conversion table to move our legacy products from unstructured FM to DITA. I understand the basic concepts but I'm having a problem with the table cells.
    In my conversion table I have P:CellBody in the first row, mapped to entry with a qualifier of cellbody.
    I also have TC mapped to entry.
    The same holds true for P:CellHeading and TH.
    Consequently, my text is wrapped in two entry elements. The Show Element Context tab shows:
    entry
    entry
    row
    tbody
    tgroup
    table
    body
    NoName
    NoName
    I'm pretty sure it should be the same as above with only one entry element (and of course with the NoNames fixed which I think I know how to do; I just haven't gotten there yet).
    How do I avoid having my cells wrapped in two entry elements?
    Thanks in advance,
    Marsha

    Marsha,
        I don't quite understand either what you are trying to do or what exactly is in your conversion table. Be aware, however, that FrameMaker will always create elements for the basic components that occur in your tables. The conversion table gives you limited control of how those elements will be tagged, but not whether the elements will exist.
       If your conversion table contains rows such as:
    P:CellBody
    entry
    cellbody
    TC:
    entry
    You will indeed get nested entry elements. The outer one is the table cell itself and the inner one is the paragraph. FrameMaker does not permit a valid document to use the same element tag for both a cell and a container, so aside from the results not being what you wanted, they are not correct within FrameMaker.
    If your table cells contain single paragraphs and you don't want elements for both the cells and the paragraphs, your conversion table doesn't even need to mention the CellBody and CellHeading paragraph tags. In fact, if your table formats use CellBody as the paragraph format for cells in the body of a table and CellHeading as the paragraph format for cells in the table heading, your EDD doesn't even have to apply the paragraph formats.
    Another variation is to include a paragraph tag in a conversion table row for a table cell by combining TC: and P: to match table cells containing particular paragraphs. For example:
    TC:P:CellBody
    entry
    creates cell elements named entry from table cells containing paragraphs tagged CellBody. The paragraph within such a cell is not wrapped in an additional element.
    One final comment is that TH: in a conversion table refers to the entire table heading; its children are heading rows. The table body analog of TH: is TB:, not TC:.
           --Lynne

  • FDK - apply Conversion Table to document

    Hello,
    I want to be able to apply a conversion table to an open document, through FDK.
    Is there a way of calling the "Structure Current document..." command from the client and pass it a filepath, so that it opens the Conversion table document and applies that to the current document?
    I want to be able to pass the filepath to the command automatically without displaying the dialog box.
    I appreciate any help!,
    Thanks in advance,
    pnk

    Hi pnk,
    Yes. It is in the chapter of the FDK ref called "Calling Clients Shipped with FrameMaker." The conversion table process is actually handled by another API client called the Structure Generator, and you'll need to make calls to it. However, in the latest FDK ref I have, I believe that the syntax in the documentation is wrong. I'll copy/paste the operative parts below, substituting the syntax that I know works. Note that you need to have all documents open with their IDs captured... you can't simply send a file path.
    To execute most operations with FrameMaker clients, you must make a sequence of several
    F_ApiCallClient() calls.
    To structure a document, use the following sequence of F_ApiCallClient() calls:
    F_ApiCallClient("Structure Generator", "INPUTDOCID objectID");
    ...where objectID is the ID of the input document.
    F_ApiCallClient("Structure Generator", "RULEDOCID objectID");
    ...where objectID is the ID of the rule (conversion) table document.
    F_ApiCallClient("Structure Generator", "OUTPUTDOCNAME pathname");
    ...where pathname is the full pathname of the output document. This command is optional. If you do
    not specify a pathname, the structure generator leaves the document unsaved and open.
    F_ApiCallClient("Structure Generator", "StructureDoc");
    ...This call instructs the structure generator to generate structure, using the parameters provided by the
    calls listed above.
    pnk, this is Russ again. So, for example, to make the call where you send the ID of the document you want to structure, you would do something like:
    UCharT msg[1024];
    F_ObjHandleT docId;
    . . . code to get docId, etc . . .
    F_Sprintf(msg, "INPUTDOCID %d", docId);
    F_ApiCallClient("Structure Generator", (StringT)msg);
    . . . rest of calls, etc . . .
    Hope this helps.
    Russ

  • Conversion table: How does it know whether a topic is a task, concept, or reference?

    FM 11
    DITA 1.2
    I'm just starting to work on my conversion table for our non-structured files. I've only gone as far as my first couple of iterative tests to create FM binary files; i.e., I haven't imported my EDD or templates yet. I'm just trying to apply logic to the process.
    Marsha

    Hi Marsha...
    The only way for it to know is based on the heading tag names. You'll need to assign different tags for each heading that starts a new "topic type". You'll also need to assign different tags within topics (like "task") to differentiate between the different sections within a topic.
    I have a tool that helps with this "retagging" process (as well as many other conversion-related issues). it lets you define a retagging scheme based on previous tags or tags that follow a certain tag. It also lets you assign new tags based on text in the heading. You may want to download the trial of this tool just to get an idea of what it can do. The sample files and documentation may be helpful for your learning process, even if you don't buy it.
         http://leximation.com/tools/info/fm2dita.php
    Also .. you might want to look at the webinar I gave for Adobe on this subject ..
         http://leximation.com/downloads/adobe-fm2xml-2013
    Cheers,
    ...scott

  • Difference between Table and Structure

    Dear SD Gurus,
    Can anybody tell me what is the difference between a Table and Structure
    Pls Reply.

    Tables are Database, which stay in system for long duration , as good as permanent, untill & unless the data is archived, which is not very frequent. Data at transaction level are captured from multiple tables, so as to meet the requirement. We can view the data in the table through T.code SE11 & SE16. there are certain tables in which data can be maintained as well as displayed. To maintain data, we use T.Code: SM30 or SM31.
    Structures are temporary table & hold the data for that particular instance or transaction.
    Regards,
    Rajesh Banka
    Reward suitable points.
    How to give points: Mark your thread as a question while creating it. In the answers you get, you can assign the points by clicking on the stars to the left. You also get a point yourself for rewarding (one per thread).

Maybe you are looking for

  • How to output particular text in main window only in first page

    Hi experts how to ouput particular text in main window only in first page after that actual transaction data will be continued.....any ideas....Answers will be rewarded.....

  • How to create a generic error handling proxy?

    Hello, i have few services proxies. I want to create a generic error handling osb proxy which does only errorhandling. This proxy would be called by all my services.Now suppose my services proxies would throw any error,the control will pass to error

  • PO Upload via LSMW

    Hi Experts, I created an LSMW for PO uploading. I used BAPI as my import method. When I run the LSMW, the values from the material master, vendor master, and inforecord OVERWRITE the values that I was passing from my upload text file. Is there a way

  • Report to Moderator In SharePoint Mysite NewsFeed

    Hi All We are are using SharePoint 2013 OnPrim we have configured mysite for our organization and now would like to include "Report to Moderator" option in SharePoint Mysite NewsFeed. Is there any way to achieve this ? Thanks in Advance Mark as Answe

  • How to clear space on hard drive

    my 80g hard drive has 6g left. i thought my itunes library was culprit but it only shows 25g of space in library. how do i determine what is using so much space? is there any way besides using "get info" on every folder? i only use word, excel, safar