ABAP运行时类型服务 Runtime Type Services (RTTS)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ABAP运行时类型服务 Runtime Type Services (RTTS)相关的知识,希望对你有一定的参考价值。

 

RTTS (RunTime Type Services)允许获得变量的定义,或者在程序运行期间创建它们。RTTS由2个组件组成:

  • RTTI(RunTime Type Identification)用于获取已存在类型或已存在变量的定义。
  • RTTC(RunTime Type Creation)用于使用定义创建新的变量;需要创建的变量必须通过ABAP语句CREATE DATA ... TYPE HANDLE创建。

RTTI和RTTC可以通过使用类CL_ABAP_*DESCR中的方法访问。每个类都有RTTI和RTTC方法。(下面的表格效果太差,建议直接看英文原文

Class

RTTI methods

RTTC methods  

Attirbutes

Comments

 

CL_ABAP_TYPEDESCR
  |
  |
  |
  |
  |

 

describe_by_data
describe_by_data_ref
describe_by_object_ref
describe_by_name

absolute_name
type_kind
length
decimals
kind

describe_by_name 可以获得DDIC对象的定义.
kind代表通用类型(元素,结构,表,引用,类,接口),而type_kind代表详细类型(character, string, flat structure, 等)

 

  |??CL_ABAP_DATADESCR
  |   |
  |   |
  |   |
  |   |
  |   |

 

 

is_instantiatable
is_read_only
applies_to_data
applies_to_data_ref
get_data_type_kind

 

 

  |   |??CL_ABAP_ELEMDESCR
  |   |
  |   |
  |   |
  |   |
  |   |
  |   |
  |   |
  |   |
  |   |
  |   |
  |   |

 

get_n
get_c
get_string
get_xstring
get_i
get_f
get_d
get_t
get_x
get_p

edit_mask
help_id
output_length

 

 

  |   |??CL_ABAP_REFDESCR
  |   |
  |   |
  |   |

get_referenced_type
get_ref_to_data
get_ref_to_object

create

 

对应"type ref to data"的变量,和"type ref to object"的对象

 

  |   |??CL_ABAP_COMPLEXDESCR

 

 

 

 

  |       |??CL_ABAP_STRUCTDESCR
  |       |
  |       |
  |       |

get_components

create

struct_kind
components
has_include

 

 

  |       |??CL_ABAP_TABLEDESCR
  |
  |
  |
  |
  |

get_table_line_type

create

key
initial_size
key_defkind
has_unique_key
table_kind

 

 

  |??CL_ABAP_OBJECTDESCR
      |
      |
      |
      |
      |

 

 

interfaces
types
attributes
methods
events

 

 

      |??CL_ABAP_CLASSDESCR
      |
      |
      |
      |

get_super_class_type
get_friend_types
get_class_name
is_shared_memory_enabled

 

class_kind
create_visibility

 

 

      |??CL_ABAP_INTFDESCR

get_interface_type
get_type
get_attribute_type
get_method_parameter_type
get_event_parameter_type

 

intf_kind

 

SAP Training : ABAP351

 

原文标题:Runtime Type Services (RTTS)

本文链接:http://www.cnblogs.com/hhelibeb/p/7043550.html

参考文章:动态编程

 

以上是关于ABAP运行时类型服务 Runtime Type Services (RTTS)的主要内容,如果未能解决你的问题,请参考以下文章

abap SE11中数据字典中type group是做啥用的,怎么使用

abap怎么定义数据类型啊

moon RTTI --running-time type identification运行时类型确定

ABAP: Field-Symbols:<FS;用法

ABAP: Field-Symbols:<FS;用法

abap变量,方法,类型定义