我想通过“CALL TRANSACTION”语句调用Z-transaction并跳过第一个屏幕,但AND SKIP FIRST SCREEN
语句不起作用。
我已经读过,只有当'ENTER'功能代码用于在事务屏幕之间移动时才有意义。这是真的吗?
因此,我决定通过CALL TRANSACTION...USING bdc_table
语句使用批输入表(BDC),以便在后台处理第一个屏幕
然而,这种方式处理返回到我不想做的初始交易!
语句LEAVE TO TRANSACTION
不适用于BDC表。还有其他解决方案吗?
加入 tomdemuyt :
现在我正在使用批处理表,但如果我使用SKIP
,我宁愿这样写:
AUTHORITY-CHECK OBJECT 'S_TCODE'
ID 'TCD' FIELD lv_tcode.
IF sy-subrc <> 0.
MESSAGE 'No authorization for this operation!' TYPE 'E'.
ELSE.
* CALL TRANSACTION lv_tcode USING bdc_tab
* MODE 'E'
* UPDATE 'A'.
SET PARAMETER ID 'EBELN' FIELD p_ebeln.
LEAVE TO TRANSACTION lv_tcode AND SKIP FIRST SCREEN.
ENDIF.
在第一个屏幕(选择屏幕)上,必须选择p_ebeln
参数并将其传递到第二个屏幕而不先显示。
答案 0 :(得分:1)
我不确定你要做什么。您是否尝试跳过第一个屏幕并转到第二个屏幕?如果您尝试调用的事务是可执行程序,则还可以选择直接提交程序:
SUBMIT zprogram
WITH param1 = 'VALUE'
WITH selopt BETWEEN 'a' AND 'b'.
或者,您可以将批处理表更改为RSPARAMS
类型的选择表。还有许多其他选项,包括使用特定变体提交,或调用特定屏幕等。