ABAPDEMOCALLTRANSACTION使用_SAP刘梦_新浪博客
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
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 '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.
PUBLIC SECTION.
CLASS-METHODS main.
ENDCLASS.
METHOD main.
( 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-defsize = 'X'.
CALL TRANSACTION 'SE24' WITH AUTHORITY-CHECK
USING bdcdata_tab OPTIONS FROM opt.
CATCH cx_sy_authorization_error ##NO_HANDLER.
ENDTRY.
ENDCLASS.
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.
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.
可以看到函数的输入参数:
处理BDC示例:
DATA:BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
DATA:MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
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刘梦_新浪博客相关推荐
- ABAP新建session会话的函数_SAP刘梦_新浪博客
货铺QQ群号:834508274 微信群不能扫码进了,可以加我微信SAPliumeng拉进群,申请时请提供您哪个模块顾问,否则是一律不通过的. 进群统一修改群名片,例如BJ_ABAP_森林木.群内禁止 ...
- SAP母子订单(汇总订单)详解测试_SAP刘梦_新浪博客
汇总订单:一个在几个生产层次上链接计划订单或生产订单的多层结构.仅为结构中的最上面一个订单执行库存移动.每个订单有一个单独的订单号. 汇总订单(母子订单)优点 1.生产工艺的集成视图 汇总订单允许你在 ...
- Demo:替代_SAP刘梦_新浪博客
Tcode:OBBH 选择替换字段 设置先决条件 这里demo输入常量 替换 维护出口代码 Tcode: Gcx2 代码由两部分构成: 在form get_exit_titles 先声明 然后维护u ...
- 文本相关_SAP刘梦_新浪博客
最近两天涉及到订单文本的问题,英文的能取到,中文的取不到. 正常维护文本是可以选语言的(或者根据登录语言自动更改),比如: 但是有些进去的时候是默认了EN.比如 一般而言我们调用函数取文本都是时候语言 ...
- Odata数据展示_SAP刘梦_新浪博客
官方测试URL http://services.odata.org/V3/OData/OData.svc/ 以json格式显示 http://services.odata.org/V3/OData/O ...
- PP01工艺路线批量导入_SAP刘梦_新浪博客
工艺路线批导需求: Step2. 功能按钮"工艺路线模板下载"下载EXCEL 模板 Step3. 做工艺路线批量导入 Step3. 1 数据有效性检查: 1 工厂---工厂为选 ...
- 动态内表的俩栗子_SAP刘梦_新浪博客
货铺QQ群号:834508274 微信群不能扫码进了,可以加我微信SAPliumeng拉进群,申请时请提供您哪个模块顾问,否则是一律不通过的. 进群统一修改群名片,例如BJ_ABAP_森林木.群内禁止 ...
- 获取订单状态_SAP刘梦_新浪博客
(内部/生产)订单KO02 / CO02 涉及库表: 1)JEST:可以读取生产订单的全部状态(字段STAT),包括系统状态(I开始),用户状态(E开始),以及状态是否有效(字段INACT,X-无效, ...
- SAPNoteSAR格式解压_SAP刘梦_新浪博客
有时候遇到问题需要查note,或者打note 我一般需要查是否有note的时候就直接访问 https://support.sap.com/en/my-support/knowledge-base.ht ...
最新文章
- SAP MM 物料主数据MRP2 视图’Minimum Lot Size’字段
- python学习笔记3-循环1
- 《Python核心编程 》笔记-第二章+第三章
- vs python opencv配置_python如何配置opencv
- Python+Selenium WebDriver API:浏览器及元素的常用函数及变量整理总结
- 编写一个程序解决选择问题。令k=N/2。
- Oracle 11gR2光钎链路切换crs服务发生crash
- tensorflow各个版本的CUDA以及Cudnn版本对应关系(重点)
- 创建git仓库|将本地项目上传到git仓库
- html弄出油画效果,使用HTML5 Canvas实现仿PS图像油画滤镜特效
- linux系统 详细解析 cpu 信息
- 【Spring boot 常见问题】
- Clock skew detected. Your build may be incomplete
- vue中v-for循环选中点击的元素并对该元素添加样式
- 给Ubuntu服务器安装图形化界面
- LeetCode 题库 全	JAVA 解题---771.宝石与石头
- 孩子近视为什么不让立马配眼镜?近视还有真假之分?
- PHPExcel设置列宽行高及插入URL
- sql语句select中直接替换或去掉字符
- npm 新淘宝镜像域名地址
热门文章
- 复旦计算机博士论文,2019年复旦大学历届全国优秀博士学位论文入选情况.doc
- 无线运维的起源与项目建设思考
- 【C语言】分享一些个人C语言程序代码[大一下集合]
- Linux:如何调整ubuntu的系统界面使其放大
- numpy.linspace使用详解
- 基于omi的omim-tag组件
- 【Unity】游戏打包
- 【无标题】Android10 编译错误
- NC | 中科院蔡磊组揭示跨界合成菌群增强番茄对镰刀枯萎病抗病能力
- is running 8724480B beyond the ‘PHYSICAL‘ memory limit.