SAP 详细聊聊CALL TRANSACTION用法

CALL TRANSACTION 'tcode' USING bdc_tab ... 是 ABAP 里提供的一个方便的执行批量输入的语句,使用它可以通过程序代码完成多个事务码的连续执行。

bdc_tab 这个批输入任务表的填写方式,网上有很多例子了,大家用到的时候可以搜索。用事务码 SHDB 可以生成填写这个表的内容,按照 ABAP 字典结构类型 BDCDATA 的定义对应填写就可以了。

下面详细介绍一下这种调用方式中的执行参数:

... { {[MODE mode] [UPDATE upd]} 
    | [OPTIONS FROM opt] } 
    [MESSAGES INTO itab] ... .
 

MODE 确定批输入的执行模式,有下面几个可选值:

UPDATE 确定批输入的更新模式,有下面几个可选值:

 

 

1.使用屏幕传入
              REFRESH BDCDATA.
              CLEAR   BDCDATA.
              BDCDATA-PROGRAM = 'SAPLCSDI'.      "Programm St點kliste
              BDCDATA-DYNPRO   = '0100'.          "Dynpro
              BDCDATA-DYNBEGIN = 'X'.             "Sofort starten
              APPEND BDCDATA.
              CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'   "HW 81070
                   EXPORTING
                        INPUT   = H_MATNR
                   IMPORTING
                        OUTPUT = H_MATNR
                   EXCEPTIONS
                        OTHERS = 0.
              CLEAR   BDCDATA.
              BDCDATA-FNAM     = 'RC29N-MATNR'.     "Material
              BDCDATA-FVAL     = H_MATNR.
              APPEND BDCDATA.
              CLEAR   BDCDATA.
              BDCDATA-FNAM     = 'RC29N-WERKS'.     "Werks
              BDCDATA-FVAL     = H_WERKS.
              APPEND BDCDATA.
              CLEAR   BDCDATA.
              BDCDATA-FNAM     = 'RC29N-STLAN'.     "Verwendung
              BDCDATA-FVAL     = H_STLAN.
              APPEND BDCDATA.

              CLEAR   BDCDATA.
              BDCDATA-PROGRAM = 'SAPLCSDI'.      "Programm St點kliste
              BDCDATA-DYNPRO   = '0150'.          "Dynpro
              BDCDATA-DYNBEGIN = 'X'.             "Sofort starten
              APPEND BDCDATA.

              CLEAR   BDCDATA.
              BDCDATA-FNAM     = 'BDC_OKCODE'.
              BDCDATA-FVAL     = '/BDA'.
              APPEND BDCDATA.

              CALL TRANSACTION 'CS03' USING BDCDATA MODE 'E'.
2.使用parameter
      SET PARAMETER ID 'MAT' FIELD P_MATNR."ID为按FI可以查到
      SET PARAMETER ID 'WRK' FIELD P_WERKS.
      SET PARAMETER ID 'CSV' FIELD P_STLAN.

      CALL TRANSACTION 'CS03' AND SKIP FIRST SCREEN.
3.使用memory
data:
wfbomcom       type rc29n.
move-corresponding bom_key to wfbomcom. "#EC ENHOK        "note0526541
wfbomcom-aennr = display_aennr.
wfbomcom-datuv = display_datuv.
wfbomcom-datub = display_datub.
export wfbomcom to memory id 'WFBOMCOM'.
* display bom
call transaction 'CS03' and skip first screen.

程序调用语句:

在程序中使用 submit关键字 调用 下一个程序

1)        Submit prog_name_2 (restart)

2)        Submit prog_name_2 and return  (insertion)

3)        Submit prog_name_2 via selection-screen and return   (insertion)


via selection-screen作用: 如果程序2中有选择屏幕,则程序2被调用时 会弹出屏幕


Restart

Leave to transaction <T-code>: 功能相当于 输入”/n<T-code>”,当程序执行该语句时,该程序就会在内存被清空,接着转到相应的TCODE程序中去

insertion

call transaction <T_CODE> [and skip first screen 忽略被调用程序的第一个屏幕]

执行下一个程序, 当前程序会被压到栈的下一个位置而不会被清空

重点: and skip first screen 忽略被调用程序的第一个屏幕 ,但是 PBO 和 PAI 的Module还会被执行.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP CALL TRANSACTION 'BP是一个ABAP语言中的事务调用命令。它用于在SAP系统中执行业务事务,并可以通过传递相关数据来实现自动化处理。在这个命令中,'BP'是指调用与业务伙伴相关的事务。引用中列举了一些与业务伙伴银行详细信息相关的函数组和函数模块,可以用于修改或添加业务伙伴的银行详细信息。而引用中提到了两种简单的事务调用方法,其中第一种使用CALL TRANSACTION命令直接调用事务,第二种使用CALL TRANSACTION命令并结合批量输入表来传递数据。引用中定义了一些与事务调用相关的数据对象,例如ls_bankdetail和ls_bankdetail_x用于存储业务伙伴银行详细信息,lt_return用于存储返回消息。综上所述,ABAP CALL TRANSACTION 'BP可以用于调用与业务伙伴相关的事务,并通过传递数据来修改或添加业务伙伴的银行详细信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [SAP ABAP 更新BP银行数据](https://blog.csdn.net/weixin_43176021/article/details/129693577)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [ABAPDEMOCALLTRANSACTION使用_SAP刘梦_新浪博客](https://blog.csdn.net/senlinmu110/article/details/109651349)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值