关于abap:如何使用动态-ABAP-程序生成技术对-ABAP-系统标准的报表行为进行微调试读版

115次阅读

共计 761 个字符,预计需要花费 2 分钟才能阅读完成。

本教程后面有一篇文章,咱们介绍了如何应用内部传入的字符串,动静生成 ABAP 报表实例,并执行的办法:

  • 120. SAP ABAP 动静生成 ABAP 程序并动静调用的例子代码

咱们能够看到在第 120 个例子里,咱们应用硬编码拼接起来的字符串,来模仿内部传入的 ABAP 程序的代码源头。

笔者的常识星球里,有敌人发问,能不能从本地 ABAP 零碎,提取某个规范 ABAP 程序的代码源,而后基于这些代码源进行微调,动静生成新的 ABAP 报表并执行呢?

这个需要实践上可行。

<font color=’red’ size=”3pt”> 留神:理论应用时,确保对规范代码源的替换,肯定要处于可控状态,免得给零碎留下安全隐患。</font>

上面是本解决方案具体的步骤。

咱们先编写一个简略的 ABAP 报表,用于模仿 SAP 零碎里规范的 ABAP 报表。

这个报表的内容,依然围绕本教程之前介绍过的 ABAP 零碎的注册表 TADIR 来开展:

  • 131. 聊聊 SAP ABAP 零碎的 ABAP 对象注册表 TADIR

源代码如下:

REPORT z.

DATA: lt_tadir TYPE TABLE OF tadir,
      ls_tadir TYPE tadir.

SELECT * INTO TABLE lt_tadir FROM tadir
   UP TO 3 ROWS
     WHERE pgmid = 'R3TR' AND object = 'PROG' AND author = sy-uname.

LOOP AT lt_tadir INTO ls_tadir.
  WRITE:/ ls_tadir-obj_name.
ENDLOOP.

这个报表的作用是,从注册表里,查问出以后执行报表用户创立的三个 ABAP 报表的名称。
报表在 SE38 里的名称为 ZST.

执行之后,打印三条输入记录:

假如我的需要是,执行报表后,打印的记录条目数,改成 10 条

上面 ) 是如何应用 ABAP 动静程序生成技术,实现的这个需要。

正文完
 0