首页 > 其他分享 >介绍一款 ABAP 代码搜索工具 RS_ABAP_SOURCE_SCAN 的使用方法

介绍一款 ABAP 代码搜索工具 RS_ABAP_SOURCE_SCAN 的使用方法

时间:2023-04-17 15:35:52浏览次数:34  
标签:SCAN RS CURSOR ABAP 搜索 SAP OPEN CRM


@

目录

  • ABAP 代码搜索工具:ABAP 报表 RS_ABAP_SOURCE_SCAN
  • 实际工作中的一个需求:找到 SAP CRM 产品主数据搜索实现里使用了 OPEN CURSOR 关键字的准确位置


笔者曾经写过一篇文章,介绍了如何根据 ABAP 错误消息找到准确的抛出该错误消息的代码位置:

SAP错误消息调试之七种武器:让所有的错误消息都能被定位

这七种武器的第四种,即根据 ABAP 系统提供的两款标准工具,输入关键字,在指定的 ABAP 开发包里,搜索并列出所有包含了指定关键字的 ABAP 代码的准确位置。

本文及后续步骤,我们就来给尚未使用过这两款代码搜索工具的朋友们做一个详细介绍。

ABAP 代码搜索工具:ABAP 报表 RS_ABAP_SOURCE_SCAN

这个报表的名称,笔者是这样记忆的。

RS 代表 Reuse Service,可重用的服务。SOURCE SCAN 代表源代码扫描。

执行报表后,看到下图所示的输入界面。

笔者绝大多数时候,只使用了这个报表的 1 ~ 4 输入参数,如下图所示:

介绍一款 ABAP 代码搜索工具 RS_ABAP_SOURCE_SCAN 的使用方法_搜索

(1) 搜索的关键字。注意这个工具支持指定一个 正则表达式 作为搜索关键字。

(2) Package:在哪些 ABAP 开发包里进行搜索。

(3) 在指定的 function group 内搜索。

(4) 在指定的 Class 范围内搜索。

一般来说,搜索条件指定越详细,则搜索范围越小,则搜索速度越快。

我们来看一个实际工作中的例子。

下图是 SAP CRM 产品主数据的搜索界面。

用户可以在 UI 的下拉菜单里,指定不同组合的搜索条件来查询产品主数据:

介绍一款 ABAP 代码搜索工具 RS_ABAP_SOURCE_SCAN 的使用方法_SAP_02

介绍一款 ABAP 代码搜索工具 RS_ABAP_SOURCE_SCAN 的使用方法_搜索_03

使用 SAP CRM 这个产品的客户,其后台产品主数据的规模通常都是很大的,存放产品主数据的数据库表记录数动辄上千万,本教程之前的步骤曾经提到,OPEN CURSOR 和 FETCH NEXT CURSOR 这对关键字,是用来在这种记录数众多的数据库表里读取时避免高内存消耗的一种有效方式:

  • 77. 简单聊聊 ABAP 变量消耗的内存空间这个话题
  • 78. 浅谈 ABAP 程序运行时出现『内存耗尽』错误的问题
  • 79. 使用 OPEN CURSOR 和 FETCH NEXT CURSOR 对 SAP 数据库表进行分块读写
  • 80. 使用事务码 SAT 比较传统的 SELECT SQL 语句和 OPEN / FETCH CURSOR 分块读取 ABAP 数据库表两种方式的性能差异
  • 81. 使用 SAP ABAP Memory Inspector 对应用程序消耗内存进行检测时常犯的错误

实际工作中的一个需求:找到 SAP CRM 产品主数据搜索实现里使用了 OPEN CURSOR 关键字的准确位置

现在我们工作中接到一个调研需求:找出 SAP CRM 产品主数据标准程序里调用 OPEN CURSOR / FETCH NEXT CURSOR 的代码位置。

假设是一个刚接触 SAP CRM 不久的新人被分配到这个任务,组里的老同事只告诉他,SAP CRM 产品搜索实现的入口函数是 CRM_PRODUCT_GETLIST2.

详细使用方法参考这篇文章。



标签:SCAN,RS,CURSOR,ABAP,搜索,SAP,OPEN,CRM
From: https://blog.51cto.com/jerrywangsap/6195277

相关文章

  • ABAP 数据库表 Size Category 字段的准确含义
    有朋友在我这篇教程文章里留言:14.如何创建最简单的ABAP数据库表,以及编码从数据库表中读取数据(上)这位朋友的问题是想咨询ABAP数据库表TechnicalSettings里这个SizeCategory,如果开发人员当时设置了一个比较小的值,比如选择的0,对应的记录数是0到1000.那么随着应用......
  • 使用js对tensorspace/three.js/webgl进行截图
    使用js对tensorspace/three.js/webgl进行截图问题分析场景:在右侧,是tensorspace库使用three.js调用webgl对模型进行渲染的画面。我需要使用js对右侧画面进行截图,并保存至本地用于分析。问题:对webgl进行截图需要进行一些特别的操作,使用html2canvas行不通。同时,针对tensorspa......
  • ABAP-BP创建供应商增强
    需求:供应商和客户加"名称+税号"强校验,防止同一客商重复录入供应商名称重复校验:SE18->BADI->BUPA_ADDR_CHECK(地址及一般信息检查)METHODif_ex_bupa_addr_check~check.DATA:ev_ok_codeTYPEbu_fcode.CALLFUNCTION'BUS_LOCATOR_OKCODE'IMPORTING......
  • JSON.stringify()与JSON.parse()没有你想的那样简单
    重新学习这两个API的起因在本周五有线上的项目,16:30开始验证线上环境。开始都是顺顺利利,一帆风顺。大概17:50左右,我正在收拾东西。准备下班去王者峡谷骑着我的船溜达一圈。可是天降意外,给我派了一个bug。测试给我说:有一条数据的详情页有数据但是在页面中没有显示数据。不可......
  • 代码主要做的是一个基于DBSCAN密度聚类的风电-负荷场景生成与削减模型
    [1]关键词:密度聚类场景削减DBSCAN场景生成与削减;k-mean聚类[2]参考文档:《氢能支撑的风-燃气耦合低碳微网容量优化配置研究》第3章[3]主要内容:代码主要做的是一个基于DBSCAN密度聚类的风电-负荷场景生成与削减模型,首先,采集风电、电负荷历史数据。然后,通过采用DBSCAN密度......
  • WARNING: You are using pip version 20.1.1; however, version 23.0.1 is available.
    在使用终端界面下载Python第三方库时发出警告:WARNING:Youareusingpipversion20.1.1;however,version23.0.1isavailable.问题解决点击开始,再进入Windows系统,然后再点击命令提示符,右键选择以管理员身份运行;之后,将这段代码复制进去:python-mpipinstall--upgradepi......
  • linux中安装nvm报错: /lib64/libm.so.6: version `GLIBC_2.28
    :/lib64/libm.so.6:version`GLIBC_2.27 #查看系统内安装的glibc版本strings/lib64/libc.so.6|grepGLIBC_解决cd/root#编译安装wgethttp://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gztarxfglibc-2.28.tar.gzcdglibc-2.28/&&mkdirbuild&&cdbuil......
  • Versions 2.4.2 MacOS分析
       这是MacOS下的一款SVN客户端。由于试用版和正式版并没有什么明显的区别,所以,如果你的使用时间很长很长,那么跟正式版也没啥区别了,这样也算是最简单的一个突破口了。   直接在HopperDisassembly打开,直接查找label:604800,这是一个星期的总秒数,也是默认的试用时长,因此......
  • 汉源高科2路双向音频+1路485+RS232+1路双向开关量+电话+1百兆网络
    汉源高科2路双向音频+1路485+RS232+1路双向开关量+电话+1百兆网络......
  • 【批处理】powershell RMDIR删除文件夹及文件报错,Remove-Item: A positional paramet
    1、场景  由于测试导致的缓存文件较多,需要删除,手动删除太慢,所以直接用命令删除 2、报错备注:没装powershell的电脑可以用的  3、处理方法cmd--%/cRMDIR/Q/SC:\Users\ADMINI~1\AppData\Local\Temp参数解释:--%,停止解析符号,告诉PowerShell停止解析其余参数,并......