我有一个ABAP Z报告,显示一个模态弹出窗口(屏幕).用户按下退出键时是否可以关闭它?
我正在使用下一个屏幕调用显示弹出窗口
call screen 0100 STARTING AT 10 10 ENDING AT 110 30.
Run Code Online (Sandbox Code Playgroud)
屏幕有下一个PAI模块:
MODULE USER_COMMAND_0100 INPUT.
clear gv_ok.
case sy-ucomm.
when 'BTN_OK'.
gv_ok = 'X'.
LEAVE TO SCREEN 0.
when 'BTN_CANC'.
perform clean.
LEAVE TO SCREEN 0.
endcase.
ENDMODULE. " USER_COMMAND_0100 INPUT
Run Code Online (Sandbox Code Playgroud)
但是当用户按下转义键时不会调用PAI模块.
流逻辑部分是
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
*
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
module exit at exit-command.
Run Code Online (Sandbox Code Playgroud)
在按下Esc键时,不会调用任何PAI模块.
我正在开发一个ABAP PROGRAM,它从不同的SAP系统调用RFC.在调用RFC之前,有没有办法检查目标系统中是否存在RFC?
我有一个这样的选择
DATA lt_data TYPE SORTED TABLE OF T_TYPE1 WITH NON-UNIQUE KEY col1.
SELECT col1, col2 INTO CORRESPONDING FIELDS OF TABLE lt_data where...
Run Code Online (Sandbox Code Playgroud)
我的问题是:排序操作是在DB上进行还是在应用服务器端进行?我的数据库是 Hana DB (S/4 Hana)。
我需要开发一个ABAP程序,该程序为SAP Basis做一些动作。该程序只能在测试/开发系统中运行,在生产系统中运行该程序并不安全。
我需要任何安全的方法来防止程序高效运行。我可以读取T000表中的类别字段,并检查系统是否有效,但是这种方式不是100%安全的。任何具有调试/变量修改授权的用户都可以避免这种情况。
可能的解决方案是根本不将ABAP程序导入生产系统。同时,我们有一个从生产环境到QA的系统副本(Oracle DB从PROD完全复制到QA并重命名)。这意味着在复制每个PROD-> QA之后,新程序将在质量检查中删除,我们需要将其从DEV重新导入到质量检查中。因此,这种方式并不方便。
有什么办法更安全吗?