abap中程序跳转(全)
1.常用
1.CALL TRANSACTION
1.CALL TRANSACTION ta WITH|WITHOUT AUTHORITY-CHECK [AND SKIP FIRST SCREEN].
其中ta为事务码tcode使用时要打单引号(')
2. CALL TRANSACTION ta WITH|WITHOUT AUTHORITY-CHECK
USING bdc_tab { {[MODE mode] [UPDATE upd]}
| [OPTIONS FROM opt] }
[MESSAGES INTO itab].
其中ta为事务码tcode使用时要打单引号(')
CALL TRANSACTION T-CODE WITH|WITHOUT AUTHORITY-CHECK
USING bdc_tab [OPTIONS FROM opt].
代码使用
SET PARAMETER ID 'AAT' FIELD 'RK'.
SET PARAMETER ID 'SPA' FIELD p_shar."这后面可以接变量(选择屏幕变量)
SET PARAMETER ID 'VTW' FIELD '10'."要传几个参数值就写几行
CALL TRANSACTION 'VA01'." AND SKIP FIRST SCREEN .
*++++++++++++++++++++++++++++++++++++++++++++++++++++++*
CALL TRANSACTION 'VA01' AND SKIP FIRST SCREEN .
"加上AND SKIP FIRST SCREEN会在传值之后直接执行或者回车
GET PARAMETER ID 'AAT' FIELD STR."获取值
*FREE MEMORY ID 'AAT'."memory id清除memory id
其中AND SKIP FIRST SCREEN表示根据输入的参数直接跳转到相关操作页面
BDC传参
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-CHECKUSING bdcdata_tab OPTIONS FROM opt.CATCH cx_sy_authorization_error ##NO_HANDLER.ENDTRY.
WITH AUTHORITY-CHECK.
TRY.CALL TRANSACTION 'F-02' WITH AUTHORITY-CHECK.CATCH cx_sy_authorization_error.MESSAGE s001(00) WITH '无此事务代码操作权限,请检查' DISPLAY LIKE 'E'.RETURN.ENDTRY.
*如果程序没有上述权限异常控制,当权限不够时,可能会导致当前程序dump
其中的多值传递范例
DATA STR TYPE C LENGTH 25.
GET PARAMETER ID 'VKO' FIELD STR."获取SET ID的值
1.方法1
REPORT ZTXYY_1141.
TABLES:VBRK.
DATA STR TYPE C LENGTH 25.
SELECT-OPTIONS s_matnr FOR VBRK-VKORG ."MEMORY ID ZDEMO.FREE MEMORY ID 'ZDEMO'."清除MEMORY ID
EXPORT s_matnr FROM s_matnr TO MEMORY ID 'ZDEMO'."传入MEMORY ID
*SET PARAMETER ID 'VKO' FIELD STR."实现单值输入
CALL TRANSACTION 'ZTXYY_1142' ."AND SKIP FIRST SCREEN.
程序ztxyy_1142定义了一个同名的tcode.
REPORT ztxyy_1142.
TABLES:vbrk.
DATA str1 TYPE c LENGTH 25.
SELECT-OPTIONS s_matnr FOR vbrk-vkorg.
SELECT-OPTIONS s_matnr2 FOR vbrk-vkorg.INITIALIZATION.
* GET PARAMETER ID 'VKO' FIELD str1."获取SET ID的值IMPORT s_matnr TO s_matnr FROM MEMORY ID 'ZDEMO'."读取MEMORY IDFREE MEMORY ID 'ZDEMO'."清除MEMORY ID
ABAP程序间跳转CALL TRANSACTION-CSDN博客
2.通过 BDC的方式传入多参数值
DATA: lt_bdcdata_tab TYPE TABLE OF bdcdata,ls_opt TYPE ctu_params.
lt_bdcdata_tab = VALUE #(( program = 'ZPSR018_CONFIRM' dynpro = '1000' dynbegin = 'X' )( fnam = 'BDC_CURSOR' fval = 'S_PSPID-LOW' ) "其中fval为值 fnam为参数ID( fnam = 'S_VERNR-LOW' fval = lv_vernr_low ) "这里实现了多值输入( fnam = 'S_VERNR-HIGH' fval = lv_vernr_high ) ).
ls_opt = VALUE #( dismode = 'E'defsize = 'X' ).TRY.CALL TRANSACTION 'ZPSR018A' WITH AUTHORITY-CHECKUSING lt_bdcdata_tab OPTIONS FROM ls_opt.CATCH cx_sy_authorization_error ##NO_HANDLER.ENDTRY.
2.SUBMIT
SUBMIT {rep|(name)} [selscreen_options]
[list_options]
[job_options]
[AND RETURN].
... USING SELECTION-SCREEN dynnr
SUBMIT zlxf003 VIA SELECTION-SCREEN"跳转后保留zlxf003程序执行后的第一个窗口
WITH p_date = p_date "字段传值也可以p_date = 1
WITH s_bukrs IN s_bukrs "多值传递 不可用s_bukrs-low = s_bukrs-low
WITH s_hkont IN s_hkont "多值传递 不可用s_bukrs-high = s_bukrs-high来实现
WITH p_rd1 = p_rd1
WITH p_rd2 = p_rd2
WITH p_rd3 = p_rd3
AND RETURN."从调用程序返回后可以返回到主程序的执行界面
SUBMIT 后面跟着的是程序名而不是tcode事务码
SUBMIT ZTXYY_1142 ."会直接调用程序ZTXYY_1142跳过选择屏幕
*点击返回按钮会直接返回原主程序代码界面
将被调用程序设置为后台作业模式运行
FORM frm_bajob_data .DATA: lv_jobname TYPE tbtcjob-jobname,lv_jobcount TYPE tbtcjob-jobcount.CONCATENATE 'ZLXF003_' sy-datum sy-uzeit INTO lv_jobname.**********************************************************************
* 启动后台作业CALL FUNCTION 'JOB_OPEN'EXPORTINGjobname = lv_jobnamesdlstrtdt = sy-datumsdlstrttm = sy-uzeitIMPORTINGjobcount = lv_jobcountEXCEPTIONScant_create_job = 1invalid_job_data = 2jobname_missing = 3OTHERS = 4.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 DISPLAY LIKE 'E'.RETURN.ENDIF.**********************************************************************
* submit 程序SUBMIT zlxf003 AND RETURNWITH p_date = p_dateWITH s_bukrs IN s_bukrsWITH s_hkont IN s_hkontWITH p_rd1 = p_rd1WITH p_rd2 = p_rd2WITH p_rd3 = p_rd3USER sy-unameVIA JOB lv_jobnameNUMBER lv_jobcount.**********************************************************************
* 关闭后台"参数cant_start_immediate设置后天作业启动优先级,如果不设置的话,可能导致作业挂起,不能实时执行CALL FUNCTION 'JOB_CLOSE'EXPORTINGjobcount = lv_jobcountjobname = lv_jobnamelaststrtdt = sy-datumlaststrttm = sy-uzeitstrtimmed = 'X'EXCEPTIONScant_start_immediate = 1invalid_startdate = 2jobname_missing = 3job_close_failed = 4job_nosteps = 5job_notex = 6lock_failed = 7invalid_target = 8invalid_time_zone = 9OTHERS = 10.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 DISPLAY LIKE 'E'.RETURN.ENDIF.
ENDFORM.


3.LEAVE TO TRANSACTION
LEAVE TO { {TRANSACTION ta} | {CURRENT TRANSACTION} }
[AND SKIP FIRST SCREEN].
1.使用后跳转到对应的事务码====点击返回按钮回到空会话窗口(原程序被关闭)
LEAVE TO TRANSACTION 'VA01' ."AND SKIP FIRST SCREEN.
其中AND SKIP FIRST SCREEN表示根据输入的参数直接跳转到相关操作页面
2.函数实现跳转
1.TH_CREATE_MODE
新建session会话的函数
效果1.调用程序需要tcode,2.调用会打开新会话(sap只支持六个会话)
3.点击返回按钮无法返回原来的程序界面4.会进行权限检查
CALL FUNCTION 'TH_CREATE_MODE'
EXPORTINGTRANSAKTION = 'VL01N' "事务码
* DEL_ON_EOT = 0PARAMETERS = 'LIKP-VSTEL = 8510 LV50C-DATBI = 20140509 LV50C-VBELN = 35001147' "事务码选择屏幕的参数PROCESS_DARK = 'X' "跳过初始选择屏幕(像va01的屏幕就跳不过去)
* IMPORTING
* MODE =
EXCEPTIONSMAX_SESSIONS = 1INTERNAL_ERROR = 2NO_AUTHORITY = 3OTHERS = 4.

2.TH_CREATE_FOREIGN_MODE
新建session会话的函数
效果1.调用程序需要tcode,2.调用会打开新会话(sap只支持六个会话)
3.点击返回按钮无法返回原来的程序界面4.无法在函数中给屏幕字段传值
CALL FUNCTION 'TH_CREATE_FOREIGN_MODE'EXPORTINGclient = sy-mandtuser = 'T008' "系统中的用户名TCODE = 'VA01' "事务码RETURN_ERROR = 1CREATE_EXCLUSIVE = 0EXCEPTIONSUSER_NOT_FOUND = 1CANT_CREATE_MODE = 2NO_AUTHORITY = 3OTHERS = 4.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
3.CC_CALL_TRANSACTION_NEW_TASK
新建session会话的函数
效果1.调用程序需要tcode,2.调用会打开新会话(sap只支持六个会话)
3.点击返回按钮,可以返回原屏幕并关闭打开的新会话.(效果类似SUBMIT语句)
WRITE 'This is the main ABAP program'.
DATA :LV_SKIP(1) TYPE C VALUE 'X',LV_VBELN LIKE VBAK-VBELN VALUE '20000190',L_ST_PARAM TYPE TPARA,L_IT_PARAMS TYPE TABLE OF TPARA.
CLEAR L_ST_PARAM.
CLEAR L_IT_PARAMS[].
L_ST_PARAM-PARAMID = 'AUN'.
L_ST_PARAM-PARTEXT = LV_VBELN.
APPEND L_ST_PARAM TO L_IT_PARAMS.
CALL FUNCTION 'CC_CALL_TRANSACTION_NEW_TASK'
" STARTING NEW TASK 'VA03'"表异步
" DESTINATION 'NONE'"EXPORTINGTRANSACTION = 'VA03'SKIP_FIRST_SCREEN = 'X'TABLESPARAMTAB = L_IT_PARAMS"传屏幕参数的表EXCEPTIONSCOMMUNICATION_FAILURE = 97SYSTEM_FAILURE = 98OTHERS = 99.
IF SY-SUBRC = 0." Success
ELSEIF SY-SUBRC = 97." Communication FailureEXIT.
ELSEIF SY-SUBRC = 98." System FailureEXIT.
ELSE.EXIT.
ENDIF.
这里原函数
CALL FUNCTION 'CC_CALL_TRANSACTION_NEW_TASK'EXPORTINGtransaction =skip_first_screen =
* TABLES
* PARAMTAB =
* EXCEPTIONS
* ERROR = 1
* OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
4.ABAP4_CALL_TRANSACTION
新建session会话的函数
效果1.调用程序需要tcode,2.调用会打开新会话(sap只支持六个会话)
3.点击返回按钮,可以返回原屏幕并关闭打开的新会话.(效果类似SUBMIT语句)
WRITE 'This is the main ABAP report calling the SAP Transaction VA03 in a new session or in a new window'.
DATA : WA_SPA TYPE RFC_SPAGPA,ITAB_SPA TYPE TABLE OF RFC_SPAGPA."传屏幕参数的表
WA_SPA-PARID = 'AUN'. "屏幕参数id
WA_SPA-PARVAL = '20000190'.
APPEND WA_SPA TO ITAB_SPA.
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'STARTING NEW TASK 'VA03'DESTINATION 'NONE'EXPORTINGTCODE = 'VA03'SKIP_SCREEN = 'X'TABLESSPAGPA_TAB = ITAB_SPA"传屏幕参数的表EXCEPTIONSCOMMUNICATION_FAILURE = 1SYSTEM_FAILURE = 2.
IF SY-SUBRC <> 0." ERROR
ENDIF.
原函数代码
CALL FUNCTION 'ABAP4_CALL_TRANSACTION'EXPORTINGtcode =
* SKIP_SCREEN = ' '
* MODE_VAL = 'A' "A:前台,显示屏幕 E:遇到错误停止并显示 N:后台模式
* UPDATE_VAL = 'A'"A:异步 S:同步 L:本地模式
* IMPORTING
* SUBRC =
* TABLES
* USING_TAB =
* SPAGPA_TAB =
* MESS_TAB =
* EXCEPTIONS
* CALL_TRANSACTION_DENIED = 1
* TCODE_INVALID = 2
* OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
有空看看这个
ABAP CALL TRANSACTION 调用事务码方式-SAP技术站ABAP CALL TRANSACTION 调用事务码方式,使用BDC参数调用事务码并进行跳转REPORTYTEST.INCLUDEBDCRECXY."使用BDC一定要包含此文件DATAL_OPTTYPECTU_PARAMS.SELECTION-SCREENPUSHBUTTON/1(20)PUBU1
https://www.sapcenter.cn/archive/post/354567785943109.html
相关文章:
abap中程序跳转(全)
1.常用 1.CALL TRANSACTION 1.CALL TRANSACTION ta WITH|WITHOUT AUTHORITY-CHECK [AND SKIP FIRST SCREEN]. 其中ta为事务码tcode使用时要打单引号() 2. CALL TRANSACTION ta WITH|WITHOUT AUTHORITY-CHECK USING bdc_tab { {[MODE mode] [UPDATE u…...
启动速度提升 10 倍:Apache Dubbo 静态化方案深入解析
作者:华钟明 文章摘要: 本文整理自有赞中间件技术专家、Apache Dubbo PMC 华钟明的分享。本篇内容主要分为五个部分: -GraalVM 直面 Java 应用在云时代的挑战 -Dubbo 享受 AOT 带来的技术红利 -Dubbo Native Image 的实践和示例 -Dubbo…...
PCB命名规则-allegro
PCB命名规则-allegro 一、焊盘命名规则 1、 贴片矩形焊盘 命名规则:SMD长(L)宽(W)(mil) 举例:SMD90X60 2、 贴片圆焊盘 命名规则:SMDC焊盘直径(D&…...
[架构之路-240]:目标系统 - 纵向分层 - 应用层 - 应用层协议与业务应用程序的多样化,与大自然生物的丰富多彩,异曲同工
目录 前言: - 倒金子塔结构 - 大自然的组成 一、应用层在计算机系统中的位置 1.1 计算机应用程序的位置 1.1.1 业务应用程序概述 1.1.2 应用程序的分类 - 按照计算机作用范围 1.1.3 业务应用程序分类 - 按照行业分类 1.2 网络应用协议的位置 1.2.1 网络协…...
探索数字时代的核心:服务器如何塑造未来并助你成就大业
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...
spring6-资源操作:Resources
资源操作:Resources 1、Spring Resources概述2、Resource接口3、Resource的实现类3.1、UrlResource访问网络资源3.2、ClassPathResource 访问类路径下资源3.3、FileSystemResource 访问文件系统资源3.4、ServletContextResource3.5、InputStreamResource3.6、ByteAr…...
C语言 内存
内存分配 内存分配的类型 C/C中内存分为5个区,分别为栈区、堆区、全局/静态存储区、常量存储区、代码区 静态内存分配:编译时分配,包括全局、静态全局、静态局部三种变量。 动态内存分配:运行时分配,包括栈&#x…...
Java设计模式之备忘录模式
备忘录模式(Memento Pattern)是一种行为型设计模式,它允许在不暴露对象内部状态的情况下捕获和恢复对象的内部状态。该模式通过在对象之外保存和恢复对象的状态,使得对象可以在需要时回滚到之前的状态。 在备忘录模式中ÿ…...
深度学习 | Pytorch深度学习实践
一、overview 基于pytorch的深度学习的四个步骤基本如下: 二、线性模型 Linear Model 基本概念 数据集分为测试集和训练集(训练集、开发集)训练集(x,y)测试集只给(x)过拟合…...
Elasticsearch7.9.3保姆级安装教程
Linux版本Elasticsearch版本(待安装)Kibana版本(待安装)CentOS 77.9.37.9.3 一、下载地址 1、官网下载 打开地址 https://www.elastic.co/cn/downloads/past-releases#elasticsearch,按如图所示选择对应版本即可 2、采用wget下载 为了不必要的麻烦,建…...
深入使用探讨 PuppeteerSharp 抓取 LinkedIn 页面的步骤
LinkedIn是全球最大的职业社交平台之一,拥有大量的用户和企业信息。用户可以在上面建立个人职业资料、与其他用户建立联系、分享职业经验和获取行业动态。由于其庞大的用户群体和丰富的数据资源,开发者们对于获取LinkedIn数据的需求日益增长。 Puppeteer…...
联合体(共用体)
1. 联合类型的定义 联合也是一种特殊的自定义类型。 这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间。 2.联合大小的计算 联合的大小 至少是最大成员的大小 。 当最大成员大小不是最大对齐数的整数倍的时候,就要对 齐到最大对齐数…...
从零开始:GitFlow详细教程,轻松掌握分支策略
前序 GitFlow是一种用于管理Git仓库中软件开发工作流程的模型,它提供了一种结构化的方法来处理特性开发、版本发布和维护。下面是一个详细的GitFlow教程,帮助你了解GitFlow的基本概念和使用方法。 安装GitFlow 首先,确保你已经安装了Git。…...
深度学习硬件介绍
目录 1. 深度学习电脑选型1.1 深度学习常用框架1.2 深度学习硬件选择1.3 GPU 厂商介绍科普 你真的需要这么一块阵列卡 1. 深度学习电脑选型 1.1 深度学习常用框架 常见的深度学习框架:百度的飞桨框架、Google 的TensorFlow,伯克利亚学院的Caffe&#x…...
利用向导创建MFC
目录 1、项目的创建: 2、项目的管理 : 3、分析以及生成的项目代码 : (1)、查看CFrame中的消息映射宏 (2)、自动生成事件 (3)、在CFrame中添加对应的鼠标处理函数 …...
MySQL 8.0 OCP认证精讲视频、环境和题库之五 事务、缓存
redo log buffer: 缓存与事务有关的redo log ,用来对mysql进行crash恢复,不可禁用; 日志缓冲区是存储要写入磁盘上日志文件的数据的内存区域。日志缓冲区大小由innodb_Log_buffer_size变量定义。 默认大小为16MB。日志缓冲区的内容会定…...
ACL配置
目录 1.使用基本ACL配置交换telnet访问的权限 2.使用高级ACL配置流分类实现限制互访某一台服务器 3.使用二层ACL配置流分类拒绝指定报文通过 4.通过流策略实现策略路由(重定向到不同的下一跳) 5.通过流策略实现不同网段间限制互访 6.通过流策略实现限速功能 7.通过流策略…...
微信小程序修改van-popup的背景颜色
效果图: van-popup背景颜色渐变 使用深度修改样式不生效,直接在 custom-style里面修改即可; <van-popup position"bottom"custom-style"height:25%;background:linear-gradient(95deg, #F8FCFF -0.03%, #EDF5FF 64.44…...
SpringCloud-Nacos
一、介绍 (1)作为服务注册中心和配置中心 (2)等价于:EurekaConfigBus (3)nacos集成了ribbon,支持负载均衡 二、安装 (1)官网 (2) …...
动态规划12(Leetcode221最大正方形)
代码: class Solution {public int maximalSquare(char[][] matrix) {int m matrix.length;int n matrix[0].length;int[][]area new int[m][n];area[0][0] matrix[0][0];int max 0;for(int i0;i<m;i){area[i][0] matrix[i][0]1? 1:0;max Math.max(area…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...

