取消第一个交易屏幕

时间:2012-07-10 14:19:31

标签: transactions background screen abap bdc

我想通过“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参数并将其传递到第二个屏幕而不先显示。

1 个答案:

答案 0 :(得分:1)

我不确定你要做什么。您是否尝试跳过第一个屏幕并转到第二个屏幕?如果您尝试调用的事务是可执行程序,则还可以选择直接提交程序:

SUBMIT zprogram 
  WITH param1 = 'VALUE' 
  WITH selopt BETWEEN 'a' AND 'b'.

或者,您可以将批处理表更改为RSPARAMS类型的选择表。还有许多其他选项,包括使用特定变体提交,或调用特定屏幕等。