1. 程式人生 > >ABAP運行時類型服務 Runtime Type Services (RTTS)

ABAP運行時類型服務 Runtime Type Services (RTTS)

desc pos include 運行期 標題 get eat ant 結構

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)