ABAP中数据和对象的动态创建和调用
动态创建数据或者对象是指在程序运行过程中创建数据变量或者对象实例,我们可以用引用定义来创建数据变量,格式为:
CREATE DATA gt_def TYPE (‘ty_i’) “用来创建类型为ty_i的变量
访问上述变量的方式是:
gt_def->* = 1
因为数据引用变量自身没有属性,所以可用“*”来代表数据变量里面所有的内容。
基于类对象的动态创建,一般方式是将业务类型与对应的类类型存储在自定义的数据库表中,然后在程序运行时动态读取配置,获得类名称,按字符串的形式传入倒所创建的代码中,动态创建对象实例。
动态创建对象实例的时候,需要注意以下几点。
- 确认类的实例化类型是否能够直接使用CREATE OBJECT或者NEW来创建,还是需要使用类的静态方法或者辅助类的方法来创建。
- 动态创建类对象时传入的类名字符串是大写的,可以使用“TRANSLATE XX TO UPPER CASE”进行转换,否则ABAP找不到该类会返回错误。
- 动态创建类对象时,要使用SAP提供的TRY CATCH 来控制异常,以防止系统崩溃。
SAP 可以采用关键字CALL METHOD (method_name) 来动态调用类方法。