CALL TRANSACTION USING bdc_tab for Data Transfer

本文介绍如何使用 SAP 的 SM37 事务代码进行批处理作业的调度和执行,包括通过编程方式设置批处理参数并提交作业。此外还展示了如何调用特定的事务代码和程序来实现批处理任务。

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

http://help.sap.com/saphelp_sm32/helpdata/en/fa/09715a543b11d1898e0000e8322d00/frameset.htm

DATA: it_bdcdata TYPE TABLE OF bdcdata,
      wa_bdcdata TYPE bdcdata.

wa_bdcdata-program = 'SAPLBTCH'.
wa_bdcdata-dynpro = '2170'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.

wa_bdcdata-fnam = 'BTCH2170-JOBNAME'.
wa_bdcdata-fval = '*'.
APPEND wa_bdcdata TO it_bdcdata.

wa_bdcdata-fnam = 'BTCH2170-USERNAME'.
wa_bdcdata-fval = sy-uname.
APPEND wa_bdcdata TO it_bdcdata.

CALL TRANSACTION 'SM37' USING it_bdcdata.

--------------------------------------------------------
Submit to executable program via selection options
--------------------------------------------------------
SUBMIT zrmm0001 VIA SELECTION-SCREEN
    AND RETURN
    WITH p_matnr = itab-matnr
    WITH p_werks = itab-werks
    WITH p_lgort = itab-lgort
    WITH s_charg = itab-charg
    WITH p_num = p_label
    WITH p_dest = p_print.

----------------------------------------------------------

Submit to program which not has selection screen

----------------------------------------------------------

SET PARAMETER ID 'RBN' FIELD S_ARSEG-BELNR.
SET PARAMETER ID 'GJR' FIELD S_ARSEG-GJAHR.
CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN.

<think>好的,我现在需要解析用户提供的这段ABAP代码。首先,我会仔细阅读代码,理解每一部分的作用。 首先看到DATA语句,定义了一个名为bdc_ctu_params的变量,类型是ctu_params,并赋予初始值'NS X X'。ctu_params类型应该是一个结构体,用于配置事务调用时的参数。这里的初始值可能对应不同的选项,比如更新模式、错误处理等。需要进一步确认每个字符的意义,通常可能第一个字符是更新模式,比如'N'代表非同步更新,后续的可能涉及错误处理方式。 接下来是DEFINE语句,定义了一个宏BDC_TRANSACTION。宏的作用是简化重复的代码。在宏体内,使用CALL TRANSACTION调用事务代码&1,同时使用bdc_it_data[]作为数据表,选项来自之前定义的bdc_ctu_params,并将消息存入bdc_it_msg表中。这里的&1应该是宏参数,调用宏时需要传入事务代码。 需要注意宏定义的结束标记是END-OF-DEFINITION。在ABAP中,宏通过DEFINE和END-OF-DEFINITION来界定,使用时直接写宏名和参数即可。例如,调用BDC_TRANSACTION 'MM01'时,会替换&1为MM01,执行对应的CALL TRANSACTION语句。 用户可能想了解这段代码的结构和用途。需要解释每个部分的功能,包括变量定义、宏定义及其参数,以及调用事务时的配置选项。同时,可能还需要说明各个参数的具体含义,比如ctu_params中的'NS X X'每个字符代表什么设置,这可能需要参考ABAP文档或相关配置。 另外,要指出宏的使用场景,比如在批量数据处理中,多次调用不同事务代码时,通过宏简化代码。同时,可能存在的注意事项,比如bdc_it_databdc_it_msg需要正确定义,否则会导致运行时错误。 总结来说,这段代码定义了一个宏,用于通过BDC(Batch Data Communication)调用事务,使用预设的参数控制事务执行的方式,并收集处理过程中的消息。需要详细解释每个部分的作用,以及可能的配置选项含义,帮助用户理解代码结构和用途。</think>该ABAP代码解析如下(分步说明): 1. **数据定义部分** ```abap DATA: bdc_ctu_params TYPE ctu_params VALUE 'NS X X'. ``` - 定义名为 `bdc_ctu_params` 的结构体变量 - 类型为事务调用参数结构 `ctu_params` - 初始值 `'NS X X'` 表示: - `N`:非同步更新模式(异步提交) - `S`:禁止屏幕显示 - 第一个 `X`:跳过错误屏幕 - 第二个 `X`:不更新任务队列 2. **宏定义部分** ```abap DEFINE bdc_transaction. ``` - 声明宏 `bdc_transaction` - 宏参数通过 `&1` 占位符接收(事务代码参数) 3. **事务调用逻辑** ```abap CALL TRANSACTION &1 USING bdc_it_data[] OPTIONS FROM bdc_ctu_params MESSAGES INTO bdc_it_msg. ``` - `&1` 将被实际事务代码替换(如 `VA01`) - `bdc_it_data[]` 是BDC数据内表(必须预先填充屏幕操作数据) - `OPTIONS FROM` 指定调用参数配置 - `MESSAGES INTO` 将返回消息存入 `bdc_it_msg` 内表 4. **典型使用场景** ```abap bdc_transaction 'VA01'. " 创建销售订单 bdc_transaction 'MM02'. " 修改物料主数据 ``` - 通过宏简化重复的事务调用代码 - 统一使用预设的调用参数和消息处理机制 **注意事项**: 1. 必须预先定义: - `bdc_it_data` 类型为 `BDCDATA` 的内表 - `bdc_it_msg` 类型为 `BDCMSGCOLL` 的内表 2. 字符参数含义: - 更新模式:`A`(异步)/`S`(同步)/`N`(本地) - 屏幕处理:`E`(显示错误)/`X`(跳过错误屏幕)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值