matinal:再次详解ABAP BDC的执行模式和更新模式

本文详细介绍了ABAP中的CALLTRANSACTION语句,特别是BDC数据处理,包括BDCDATA表的填充方法,执行模式(A/E/N/P)的选择,以及更新模式(A/S/L)的应用,重点讲解了不同模式下的事务处理行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CALL TRANSACTION 'TCODE' USING bdcdata
                         MODE   'A'
                         UPDATE 'S' MESSAGES INTO it_messtab.
CALL TRANSACTION 'TCODE' USING bdc_tab ... 

ABAP 提供的这个语法是执⾏BDC 的核⼼,其中 bdcdata 这个内表的填充⽅法很多。⽤事务码 SHDB/SM35 可以⽣成填写这个表的内容,按照 ABAP 字典结构类型 BDCDATA 的定义对应填写就可以了。


MODE 确定批输⼊的执⾏模式,有下⾯⼏个可选值:

执⾏模式,有下列可选值(执⾏模式常⽤的是 A/ N)

"A" 显⽰所有输⼊屏幕,如果在 bdc_tab 中包含该屏幕的功能码,则会出现⼩窗⼝显⽰这个功能码。它也是默认值,如果指定不是下⾯的值,则都认为是 A。

"E" 只有在出现错误时才显⽰屏幕,⽤户可以修正数据,修正后程序可以继续处理。

"N" 不显⽰屏幕的静默模式。如果到达被调⽤事务的断点,则系统处理终⽌,并设置⼀些系统字段。sy-subrc 为 1001,sy-msgty 为 "S"、sy-msgid 为 "00"、sy-msgno 为 "344"、sy-msgv1 为 "SAPMSSY3"、sy-msgv2 为 "0131"。

"P" 不显⽰屏幕的调试模式。如果到达被调⽤事务的断点,则系统⾃动转到 ABAP 调试器,这种⽅式主要⽤于调试过程。


更新模式,有下列可选值(更新模式常⽤的是 S)

"A" 异步更新。被调⽤程序的更新按照没有指定 COMMIT WORK 语句和 AND WAIT 附加的⽅式执⾏。也就是说,数据更新被放到更新队列⾥,由另⼀个专门的更新进程执⾏,主程序⼀旦提交数据就继续执⾏,⽽不管提交的更新是否执⾏完成。这种⽅式⽐较适合于⽤⼀个事务码⼤量更新指定数据,⽐如维护主数据等。

"S" 同步更新。被调⽤程序的更新按照指定了 COMMIT WORK 语句和 AND WAIT 附加的⽅式执⾏。也就是说,数据更新被放到更新队列⾥,由专门的更新进程执⾏,但是主程序会等到数据提交完成,返回结果信息后才继续执⾏。这种⽅式⽐较适合于数据⼀致性要求⽐较⾼,多个不同事务码的连续处理。

"L" 本地更新。被调⽤程序的更新按照执⾏ SET UPDATE TASK LOCAL 语句的⽅式执⾏。也就是说,数据更新在主程序所在的进程中完成,主程序必定等到被调⽤事务完成才继续执⾏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值