Background
From Release 4.0A, you have the option of defining logical database nodes in various ways:
When defining InfoSets in Releases 4.0A and 4.0B, you may only use those logical databases containing type Database table (type T) nodes. From Release 4.5A logical databases containing both other types of nodes can also be used. There are, however, some restrictions to be taken into account.
When using nodes with complex types (Dictionary type or Data type), ABAP Query only allows you to evaluate those fields that can be addressed directly from the highest level of the type. If the complex type in question contains a table, the individual components that the table is made up of cannot be accessed. This is demonstrated in the following example.
Example
Given: The following kind of complex type. ABAP Notation is chosen. This kind of type could also be depicted as a Dictionary Type.
TYPES: BEGIN OF person,
name(20),
first_name(20),
birthday(10),
END OF person,
BEGIN OF address,
street(30),
number(6),
zipcode(10),
city(30),
END OF adress,
adress_table TYPE address OCCURS 0.
TYPES: BEGIN OF personal_data,
person TYPE person,
first_adress TYPE address,
other_addresses TYPE address_table,
END OF personal_data.
If the logical database node PDATA is of type PERSONAL_DATA, the following fields of this node can be evaluated using the ABAP Query:
PDATA-PERSON-NAME
PDATA-PERSON-FIRST_NAME
PDATA-PERSON-BIRTHDAY
PDATA-FIRST_ADDRESS-STREET
PDATA-FIRST_ADDRESS-NUMBER
PDATA-FIRST_ADDRESS-ZIPCODE
PDATA-FIRST_ADDRESS-CITY
Those fields containing information about additional addresses (OTHER_ADRESSES) cannot be evaluated because a table type is being used here.
Restrictions
Additional restrictions apply to nodes with type Data type (type C). Due to the fact that nodes of this type are not defined as ABAP Dictionary types, no long texts or headers exist for these fields. Therefore, when defining an InfoSet, you can only use the technical names of the fields as name suggestions (for example PERSON-NAME). In order for these fields to appear in the same way that all other database nodes do, you must maintain all texts for them.
Additionally, pay attention to the fact that reference field definition is not possible with nodes of type Data type since this is only allowed with Dictionary types. Because of this, ABAP Query cannot recognize values with units (currency sums or quantities), nor can it evaluate them within these nodes.