ABAP中数据和对象的动态创建和调用

动态创建数据或者对象是指在程序运行过程中创建数据变量或者对象实例,我们可以用引用定义来创建数据变量,格式为:

CREATE DATA  gt_def TYPE (‘ty_i’)    “用来创建类型为ty_i的变量

访问上述变量的方式是:

gt_def->* = 1

因为数据引用变量自身没有属性,所以可用“*”来代表数据变量里面所有的内容。

基于类对象的动态创建,一般方式是将业务类型与对应的类类型存储在自定义的数据库表中,然后在程序运行时动态读取配置,获得类名称,按字符串的形式传入倒所创建的代码中,动态创建对象实例。

动态创建对象实例的时候,需要注意以下几点。

  1. 确认类的实例化类型是否能够直接使用CREATE OBJECT或者NEW来创建,还是需要使用类的静态方法或者辅助类的方法来创建。
  2. 动态创建类对象时传入的类名字符串是大写的,可以使用“TRANSLATE XX TO UPPER CASE”进行转换,否则ABAP找不到该类会返回错误。
  3. 动态创建类对象时,要使用SAP提供的TRY CATCH 来控制异常,以防止系统崩溃。

SAP 可以采用关键字CALL METHOD (method_name) 来动态调用类方法。

【转载】ABAP中数据和对象的动态创建和调用相关推荐

  1. linux创建自定义组件qt,QT中的元对象系统:创建自定义的QT类型

    原创文章,转载请注明出处,谢谢! 作者:清林,博客名:飞空静渡 QVariant可以表示QT中的大部分类型,它和pascal中的variant类型或c中的void类型有点相似,不过它的使用和c中的un ...

  2. 关于JObject的用法,以及实现动态生成实体对象、动态创建一些Josn组合

    通过JObject和JArray创建JSON对象 我们先用非常简单的方法来动态创建一些JSON,可通过JToken派生的JSON.NET对象来进行,最常见的JToken派生的类是JObject和JAr ...

  3. python中ndarray如何生成单独的记事本文件_NumPy-快速处理数据--ndarray对象--数组的创建和存取...

    本文摘自<用Python做科学计算>,版权归原作者所有. NumPy为Python提供了快速的多维数组处理的能力,而SciPy则在NumPy基础上添加了众多的科学计算所需的各种工具包,有了 ...

  4. Excel中数据透视表的 使用 创建(ピポットテーブル)

    1.使用示例 ・数据源 想要分析的数据中,指定上面的位置 ・根据以上的数据源,生成的透视表 2.注意事项 ・2.1做成透视表,参照的数据源,所有的列,都要有标题(title),否则会报错. 3.操作 ...

  5. firedac的TFDStoredProc动态创建并调用存储过程

    1)中间件执行存储过程 sp.Close; sp.StoredProcName := procName; sp.Prepare;  // 生成存储过程的参数列表,无任何OUTPUT的存储过程,也会自动 ...

  6. Python中函数的常见操作(创建、调用、递归函数等等)【非常详细】

  7. PHP设计模式--数据访问对象模式

    最简单的Web部件和最复杂的在线电子商务Web站点具有一个共同点:它们都要处理数据.大量的编程都设计数据的访问和操作.随着Internet的发展.脸颊存储设备应用数据的大量增长.对分析论的更深入理解以 ...

  8. NumPy-快速处理数据--ndarray对象--多维数组的存取、结构体数组存取、内存对齐、Numpy内存结构...

    本文摘自<用Python做科学计算>,版权归原作者所有. 上一篇讲到:NumPy-快速处理数据--ndarray对象--数组的创建和存取 接下来接着介绍多维数组的存取.结构体数组存取.内存 ...

  9. android module中获取 app_Android组件化架构 - 4. 动态创建

    Android 组件化中使用动态创建的作用是解耦: 1. 反射机制 反射有两个作用:1.反编译:.class->.java;2.通过反射机制访问java对象中的属性,方法,构造器等: 实现反射, ...

最新文章

  1. 起源、进化、创造、探索——穿越138亿年的时间之旅
  2. R语言e1071包中的支持向量机:仿真数据(螺旋线性不可分数据集)、简单线性核的支持向量机SVM(模型在测试集上的表现、可视化模型预测的结果、添加超平面区域与原始数据标签进行对比分析)、如何改进核函数
  3. apache2.2配置
  4. Leetcode295 数据流中的中位数-最小堆和最大堆
  5. makefile使用宏及用法$(宏标识符) $(cc)_宏编程的艺术
  6. 有趣的网页注释代码,保护我方源码
  7. C#透明窗体实现方法
  8. WEBSHELL权限提升 菜菜
  9. 网站重新解析换服务器,更换解析服务器地址
  10. NAPI 方式的实现
  11. OpenCv之绘图(笔记03)
  12. 51 -算法 -斐波拉奇数列 -LeetCode 70 -递推
  13. c++语言读txt数据,关于C++中读取txt文件中字符串 - 程序语言 - 小木虫 - 学术 科研 互动社区...
  14. php连接mysql数据库输出_PHP连接并输出数据库数据实例代码
  15. 常用数据分析方法总结
  16. linux scl,scl命令
  17. docker安装xware 实现迅雷远程下载
  18. detectron2 学习笔记
  19. 王者荣耀账号转服务器,王者荣耀账号如何跨系统转移
  20. 网站每天更新几十篇上百篇文章是怎么做到的?

热门文章

  1. iOS7 UIKit Dynamics 的初步研究
  2. Hypertable 0.9.6.5 发布,分布式数据库
  3. nginx rewrite规则和参考
  4. IE6使用png透明图片的方法
  5. 百合网婚礼产品总监徐德生:电商类产品的转化率为何总是令人心碎?
  6. Apple Pay会不会成为下一个eBay(完结)
  7. 【专访】PP租车创业故事二:为什么要创业?
  8. 绿色经营:从优秀到卓越最显性准则
  9. 家长会PPT教师的福利模板
  10. Python多版本管理器-pyenv 介绍及部署记录