You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断传输请求是否已从导入缓冲区中删除?

判断传输请求是否已从导入缓冲区删除的编程实现

以下是两种可靠的实现方法:

方法1:直接查询导入缓冲区表TBATG

系统导入缓冲区的传输请求记录存储在表TBATG中,若指定请求不在该表内,即可判定它已从导入缓冲区删除。

示例ABAP代码:

DATA: lv_trkorr TYPE e070-trkorr VALUE 'YOUR_TR_NUMBER'.

SELECT SINGLE trkorr FROM tbatg 
  WHERE trkorr = lv_trkorr
    AND sysid = 'TARGET_SYSTEM_ID'. " 可选:指定目标系统,仅当前系统查询可省略

IF sy-subrc <> 0.
  WRITE: / '传输请求', lv_trkorr, '已从导入缓冲区删除'.
ELSE.
  WRITE: / '传输请求', lv_trkorr, '仍在导入缓冲区中'.
ENDIF.

方法2:使用函数模块TR_REQUESTS_IN_BUFFER

该函数模块会返回当前系统导入缓冲区中的所有传输请求列表,通过检查目标请求是否在列表中来判断状态。

示例ABAP代码:

DATA: lv_trkorr TYPE e070-trkorr VALUE 'YOUR_TR_NUMBER',
      lt_requests TYPE STANDARD TABLE OF trwbo_trkorr,
      ls_request TYPE trwbo_trkorr.

CALL FUNCTION 'TR_REQUESTS_IN_BUFFER'
  TABLES
    requests = lt_requests.

READ TABLE lt_requests INTO ls_request WITH KEY trkorr = lv_trkorr.
IF sy-subrc <> 0.
  WRITE: / '传输请求', lv_trkorr, '已从导入缓冲区删除'.
ELSE.
  WRITE: / '传输请求', lv_trkorr, '仍在导入缓冲区中'.
ENDIF.

补充说明

  • E070、E071等表存储的是传输请求的基础定义和历史变更记录,无论请求是否在导入缓冲区都会保留,因此无法用于判断缓冲区状态。
  • TR_READ_GLOBAL_INFO_OF_REQUEST仅返回请求的全局属性、导入步骤等信息,不包含缓冲区的存在状态。

内容的提问来源于stack exchange,提问作者Cutter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 03:04:54