SET PARAMETER AND CALL TRANSACTION

"ME23N 显示采购订单
DATA(LV_PO_EBELN) =  GT_PO[ E_ROW_ID-INDEX ]-ZINBPO.
CHECK LV_PO_EBELN IS NOT INITIAL.
SET PARAMETER ID 'BES' FIELD LV_PO_EBELN.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
"VA03 显示销售订单
DATA(LV_SO_VBELN) =  GT_PO[ E_ROW_ID-INDEX ]-ZINBSO.
CHECK LV_SO_VBELN IS NOT INITIAL.
SET PARAMETER ID 'AUN' FIELD LV_SO_VBELN.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.

查看事务码对应的PARAMETER ID方式:
进入Tcode->鼠标放在所需要的输入框->f1->弹窗中菜单栏的技术信息选项

### ABAP 中 SUBMIT 语句的传参方法 在 ABAP 编程中,`SUBMIT` 是用于启动另一个程序的关键字。通过 `SUBMIT` 可以实现不同程序之间的交互,并支持多种参数传递方式。以下是常见的几种传参方法及其示例。 #### 方法一:使用 EXPORTING LIST 可以将变量列表作为参数导出到目标程序。这些变量将在目标程序的全局数据声明部分可用。 ```abap DATA: lv_var TYPE string VALUE 'Test Value'. SUBMIT zprogram_1 AND RETURN EXPORTING LIST (lv_var). ``` 这种方法适用于简单的变量传递场景[^1]。 #### 方法二:使用 SET PARAMETER ID 和 GET PARAMETER ID `SET PARAMETER ID` 将值存储到 SAP 内存中,而目标程序可以通过 `GET PARAMETER ID` 来获取该值。需要注意的是,这种内存共享可能会引发意外行为,因为即使关闭原程序后,其他会话仍可能访问此内存中的值[^2]。 ```abap " 在源程序中设置参数 SET PARAMETER ID 'YTEST' FIELD 'ExampleValue'. " 在目标程序中获取参数 PARAMETERS: p_test TYPE string. GET PARAMETER ID 'YTEST' FIELD p_test. WRITE: / p_test. ``` #### 方法三:通过 SELECT-OPTIONS 或 RANGES 参数传递复杂条件 当需要向目标程序传递复杂的筛选条件时,可以选择利用 `SELECT-OPTIONS` 或者 `RANGES` 数据结构来完成这一需求。系统会在运行时自动处理这些选项并将其转换为目标程序所需的格式[^4]。 ```abap SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-b01. SELECT-OPTIONS: s_matnr FOR mara-matnr. SELECTION-SCREEN END OF BLOCK b1. START-OF-SELECTION. SUBMIT zprogram_2 WITH SELECTION-TABLE s_matnr AND RETURN. ``` #### 方法四:调用带有 SCREEN 的事务代码并通过 BDC 实现自动化输入 如果目标是一个基于屏幕的标准事务,则可通过 `CALL TRANSACTION` 配合 `USING BDC DATA` 完成批处理数据录入功能。另外也可以借助工具如 SHDB 录制脚本简化开发过程[^5]。 ```abap PERFORM prepare_bdc_data CHANGING it_bdcdata. CALL TRANSACTION 'VA01' USING it_bdcdata MODE 'E' UPDATE 'A'. ... FORM prepare_bdc_data CHANGING ct_bdcdata TYPE TABLE OF bdcdata. ENDFORM. ``` 以上就是关于 ABAP 中 SUBMIT 语句主要的四种传参手段介绍以及相应实例展示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值