sapdev logo background
sapdev logo sapdev logo
Comments

SAP COMPATIBILITY documentation, setup help and example usage



Return to SAP documentation index


ARTICLE

Compatible Data Types
The compatibility of two data types (except reference types) is based on the technical type attributes of the data types. It forms the basis for type checking during assignments to field symbols or when assigning actual parameters to formal parameters .
In addition, the compatibility determines whether with value assignments and comparisons between data objects except reference variables a conversion has to be performed or not.
In the case of reference types with data objects (reference variables) that have a dynamic type besides the static type , compatibility, which is based entirely on technical type attributes, is not sufficient.

Non-Generic Data Types (Except Reference Types)
Two non-generic data types except
reference types and types that contain reference types as components are compatible if all their technical type attributes match.
  • For elementary data types the technical type attributes are:

  • the predefined ABAP type

  • the length (for types c , n , p , x )

  • the number of decimal places (for type p )

  • With compatible elementary data types, all these attributes match.
  • For structured types the technical type attribute is:

  • the component structure

  • The structure of structured types does not only refer to the sequence of elementary components in memory, but also to the combination of components to substructures and whether a substructure is a boxed component . The names of the components and of the semantic attributes defined in ABAP Dictionary, such as conversion routines or documentation, however, are not important. With compatible structures, all components are compatible in pairs. This applies recursively down to the level of elementary data types.
    If two structures are both constructed identically but different substructures are declared as boxed component s, then the structures are not compatible.
  • For table types , the technical type attributes are:

  • the row type

  • the table category

  • the table key

  • With compatible internal tables, the row types are compatible and table category and table key match. Other attributes, such as the initial memory requirement, are not important.

    Note
    The types listed here are not compatible with one another - for example, an elementary data type is never compatible with a structure, even if the structure has only one component.

    Generic Data Types
    A non-generic data type except a reference type is compatible with a generic data type if its technical attributes are included into the generic data type.

    Reference Types
    A reference type is the static type of reference variables and determines to which objects they can point. At runtime, reference var
    iables also have a dynamic type determined by the type of the object, which a reference variable points to. The dynamic type may be more specialized than the static type. For this reason, the rules for typing checks, assignments and comparisons cannot be covered by the idea of a compatibility that is based entirely on the technical attributes of the static type. Instead, the following three issues show how reference types can be used together:
  • When checking typings, a reference variable can

  • be passed to a formal parameter typed as a reference variable, provided that the type of the formal parameter is more general or equal to the type of the formal parameter ( Up Cast ) and the formal parameter cannot be changed within the procedure.

  • be assigned to a field symbol typed as a reference variable, provided that the reference types are identical.

  • Assignments between reference variables can be carried out by using an up cast or a down cast .

  • Data reference variables can be compared to all data reference variables and object reference variables can be compared to all object reference variables.

  • As a rule, data reference variables can only be used with data reference variables and object reference variables only with object reference variables. Reference variables are never converted. They are either passed without conversion or assigned to each other or compared to each other or not.

    Notes
  • These rules for the usability of reference variables for assignments is one-way. The type of a target reference variable, to which a source reference variable can be assigned, does not itself have to be assignable to the source reference variable. In contrast, the usability of reference variables in the case of comparisons is not a one-way relationship.

  • If a reference variable is a component of a structure, the usability of the structure is determined accordingly. In particular, the usability of this structure type with regard to assignments is also a one-way relationship.
    Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved




  • COMPARISON_TYPE_GLOSRY
    COMPATIBLE_GLOSRY




    comments powered by Disqus