CALL TRANSACTION的用法

首先看下标准语法:

Syntax Forms

Simple transaction call

1. CALL TRANSACTION ta WITH|WITHOUT AUTHORITY-CHECK [AND SKIP FIRST SCREEN].

Transaction call using batch input table

2. CALL TRANSACTION ta WITH|WITHOUT AUTHORITY-CHECK 
                      USING bdc_tab { {[MODE mode] [UPDATE upd]} 
                                    |  [OPTIONS FROM opt] } 
                                       [MESSAGES INTO itab].

1. 程序A中调用程序B (Tcode)

CALL TRANSACTION T-CODE [AND SKIP FIRST SCREEN].

其中AND SKIP FIRST SCREEN表示根据输入的参数直接跳过初始屏幕。

ALV双击跳转经常使用, 
比如:双击ALV的 工艺路线组或者计数器,跳转到 CA03显示工艺路线组件分配:

得到各个输入字段的 PARAMETER ID;
 物料参数ID: MAT
 工厂参数ID:WRK
 组参数 ID:   PLN
 关键日期参数 ID :STT

Step2. ALV里增加双击事件:

CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = gcl_alv_grid.
  CALL METHOD gcl_alv_grid->check_changed_data. "触发数据变更
  CASE s_ucomm.
    WHEN '&IC1'.
      CASE re_selfield-fieldname.
          WHEN 'PLNNR' OR 'PLNAL'."判断双击字段名
          READ TABLE gt_alv_dis INTO DATA(ls_alv_dis) INDEX re_selfield-tabindex.
          IF sy-subrc EQ 0.
            SET PARAMETER ID 'MAT' FIELD ls_alv_dis-matnr."物料
            SET PARAMETER ID 'WRK' FIELD ls_alv_dis-werks."工厂
            SET PARAMETER ID 'PLN' FIELD ls_alv_dis-plnnr."组参数
            SET PARAMETER ID 'STT' FIELD sy-datum."关键日志
            CALL TRANSACTION 'CA03' AND SKIP FIRST SCREEN.
          ENDIF.
          WHEN ''.
          WHEN OTHERS.
      ENDCASE.
WHEN 'CREATE'.
    
    WHEN 'LEAVE' OR 'EXIT' OR 'CANCEL'.
      LEAVE TO SCREEN 0.
    WHEN OTHERS.
  ENDCASE.

2.调用前台事物,做BDC处理


***BDC调用 调用F-47创建预付定金请求
CALL TRANSACTION 'F-47' USING GT_BDCD
                         MODE P_MODE
                       UPDATE 'S'
                 MESSAGE INTO GT_MESSTAB.
实例:使用方法参考系统标准DEMO程序:DEMO_CALL_TRANSACTION_BDC
REPORT demo_call_transaction_bdc.
CLASS demo DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS main.
ENDCLASS.
CLASS demo IMPLEMENTATION.
  METHOD main.
DATA class_name TYPE c LENGTH 30 VALUE 'CL_ABAP_BROWSER'.
DATA bdcdata_tab TYPE TABLE OF bdcdata.
DATA opt TYPE ctu_params.
bdcdata_tab = VALUE #(
      ( program  = 'SAPLSEOD' dynpro   = '1000' dynbegin = 'X' )
      ( fnam = 'BDC_CURSOR'       fval = 'SEOCLASS-CLSNAME' )
      ( fnam = 'SEOCLASS-CLSNAME' fval = class_name )
      ( fnam = 'BDC_OKCODE'       fval = '=WB_DISPLAY' ) ).
opt-dismode = 'E'.
    opt-defsize = 'X'.
TRY.
        CALL TRANSACTION 'SE24' WITH AUTHORITY-CHECK
                                USING bdcdata_tab OPTIONS FROM opt.
      CATCH cx_sy_authorization_error ##NO_HANDLER.
    ENDTRY.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
  demo=>main( ).

3.调用事物前的权限检查
CALL TRANSACTION 的方式调用事物,默认不会做权限检查,所以必要时要加上权限检查语句:

 TRY.
      CALL TRANSACTION 'F-02' WITH AUTHORITY-CHECK.
    CATCH cx_sy_authorization_error.
      MESSAGE s001(00) WITH '无此事务代码操作权限,请检查' DISPLAY LIKE 'E'.
      RETURN.
  ENDTRY.
4.调用事物代码的函数

1)功能界面跳转示例:


DATA:GT_RFC_SPAGPA TYPE TABLE OF RFC_SPAGPA,
     GW_RFC_SPAGPA LIKE LINE OF GT_RFC_SPAGPA.
GW_RFC_SPAGPA-PARID = 'AUN'.
GW_RFC_SPAGPA-PARVAL = '10000140'.
APPEND GW_RFC_SPAGPA TO GT_RFC_SPAGPA.
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
  EXPORTING
    TCODE                   = 'VA03'
    SKIP_SCREEN             = 'X' "SKIP FIRST SCREEN
  TABLES
    SPAGPA_TAB              = GT_RFC_SPAGPA
  EXCEPTIONS
    CALL_TRANSACTION_DENIED = 1
    TCODE_INVALID           = 2
    OTHERS                  = 3.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
2)也可以做BDC处理
可以看到函数的输入参数:

处理BDC示例:


DATA:BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.
DATA:MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
PERFORM BDC_DYNPRO      USING 'SAPMV45A' '0102'.
PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                              'VBAK-VBELN'.
PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                              '/00'.
PERFORM BDC_FIELD       USING 'VBAK-VBELN'
                              '10000141'.
PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
  EXPORTING
    TCODE                   = 'VA03'
    MODE_VAL                = 'A'
    UPDATE_VAL              = 'S'
  TABLES
    USING_TAB               = BDCDATA
    MESS_TAB                = MESSTAB
  EXCEPTIONS
    CALL_TRANSACTION_DENIED = 1
    TCODE_INVALID           = 2.
*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  CLEAR BDCDATA.
  BDCDATA-PROGRAM  = PROGRAM.
  BDCDATA-DYNPRO   = DYNPRO.
  BDCDATA-DYNBEGIN = 'X'.
  APPEND BDCDATA.
ENDFORM.
*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
  CLEAR BDCDATA.
  BDCDATA-FNAM = FNAM.
  BDCDATA-FVAL = FVAL.
  APPEND BDCDATA.
ENDFORM.

ABAPDEMOCALLTRANSACTION使用_SAP刘梦_新浪博客相关推荐

  1. ABAP新建session会话的函数_SAP刘梦_新浪博客

    货铺QQ群号:834508274 微信群不能扫码进了,可以加我微信SAPliumeng拉进群,申请时请提供您哪个模块顾问,否则是一律不通过的. 进群统一修改群名片,例如BJ_ABAP_森林木.群内禁止 ...

  2. SAP母子订单(汇总订单)详解测试_SAP刘梦_新浪博客

    汇总订单:一个在几个生产层次上链接计划订单或生产订单的多层结构.仅为结构中的最上面一个订单执行库存移动.每个订单有一个单独的订单号. 汇总订单(母子订单)优点 1.生产工艺的集成视图 汇总订单允许你在 ...

  3. Demo:替代_SAP刘梦_新浪博客

    Tcode:OBBH 选择替换字段 设置先决条件 这里demo输入常量 替换 维护出口代码 Tcode: Gcx2 代码由两部分构成: 在form  get_exit_titles 先声明 然后维护u ...

  4. 文本相关_SAP刘梦_新浪博客

    最近两天涉及到订单文本的问题,英文的能取到,中文的取不到. 正常维护文本是可以选语言的(或者根据登录语言自动更改),比如: 但是有些进去的时候是默认了EN.比如 一般而言我们调用函数取文本都是时候语言 ...

  5. Odata数据展示_SAP刘梦_新浪博客

    官方测试URL http://services.odata.org/V3/OData/OData.svc/ 以json格式显示 http://services.odata.org/V3/OData/O ...

  6. PP01工艺路线批量导入_SAP刘梦_新浪博客

    工艺路线批导需求: Step2.  功能按钮"工艺路线模板下载"下载EXCEL 模板 Step3. 做工艺路线批量导入 Step3. 1  数据有效性检查: 1 工厂---工厂为选 ...

  7. 动态内表的俩栗子_SAP刘梦_新浪博客

    货铺QQ群号:834508274 微信群不能扫码进了,可以加我微信SAPliumeng拉进群,申请时请提供您哪个模块顾问,否则是一律不通过的. 进群统一修改群名片,例如BJ_ABAP_森林木.群内禁止 ...

  8. 获取订单状态_SAP刘梦_新浪博客

    (内部/生产)订单KO02 / CO02 涉及库表: 1)JEST:可以读取生产订单的全部状态(字段STAT),包括系统状态(I开始),用户状态(E开始),以及状态是否有效(字段INACT,X-无效, ...

  9. SAPNoteSAR格式解压_SAP刘梦_新浪博客

    有时候遇到问题需要查note,或者打note 我一般需要查是否有note的时候就直接访问 https://support.sap.com/en/my-support/knowledge-base.ht ...

最新文章

  1. SAP MM 物料主数据MRP2 视图’Minimum Lot Size’字段
  2. python学习笔记3-循环1
  3. 《Python核心编程 》笔记-第二章+第三章
  4. vs python opencv配置_python如何配置opencv
  5. Python+Selenium WebDriver API:浏览器及元素的常用函数及变量整理总结
  6. 编写一个程序解决选择问题。令k=N/2。
  7. Oracle 11gR2光钎链路切换crs服务发生crash
  8. tensorflow各个版本的CUDA以及Cudnn版本对应关系(重点)
  9. 创建git仓库|将本地项目上传到git仓库
  10. html弄出油画效果,使用HTML5 Canvas实现仿PS图像油画滤镜特效
  11. linux系统 详细解析 cpu 信息
  12. 【Spring boot 常见问题】
  13. Clock skew detected. Your build may be incomplete
  14. vue中v-for循环选中点击的元素并对该元素添加样式
  15. 给Ubuntu服务器安装图形化界面
  16. LeetCode 题库 全 JAVA 解题---771.宝石与石头
  17. 孩子近视为什么不让立马配眼镜?近视还有真假之分?
  18. PHPExcel设置列宽行高及插入URL
  19. sql语句select中直接替换或去掉字符
  20. npm 新淘宝镜像域名地址

热门文章

  1. 复旦计算机博士论文,2019年复旦大学历届全国优秀博士学位论文入选情况.doc
  2. 无线运维的起源与项目建设思考
  3. 【C语言】分享一些个人C语言程序代码[大一下集合]
  4. Linux:如何调整ubuntu的系统界面使其放大
  5. numpy.linspace使用详解
  6. 基于omi的omim-tag组件
  7. 【Unity】游戏打包
  8. 【无标题】Android10 编译错误
  9. NC | 中科院蔡磊组揭示跨界合成菌群增强番茄对镰刀枯萎病抗病能力
  10. is running 8724480B beyond the ‘PHYSICAL‘ memory limit.