
ABAP 乱乱记
更容易记住的名字
一个没当过程序员的产品经理不是一个好作家
展开
-
浅谈SAP CRM开发——技术概念、与ECC 系列产品区别
SAP CRM首先和SAP ECC,SAP BW一样,都是SAP的一个产品,而不是属于ECC的一个模块,当然CRM在很多功能方面和ECC有重复,比如CRM的SALES和ECC的SD,CRM的SERVICES和ECC的CS。功能是有重合,但是侧重点和设计理念完全不同。如果要成为CRM的开发者,首先要理解SAP CRM的一些技术概念:CRM是一种主要是基于对象和面向对象的SAP ABAP类型的系统...转载 2019-04-30 11:23:30 · 3274 阅读 · 0 评论 -
动态设置 GUI STATUS(如何灰掉按钮)
1、文档说明本文档目的在于根据项目实际,分析动态设置GUI STATUS的方法。2、文档历史版本 修订时间 修订人 备注1.0 2019年2月6日 初次编写3、实施步骤3.1项目实际分析笔者在完成一个HR的人力资源相关信息批导的开发后,业务反映,旧系统可用的GUI STATUS的标准的导出到EXCEL的功能。经过查看报表GUI状态,发现确实有该功能,却不知何种原因不可用了,经过网上...原创 2019-05-28 15:23:25 · 1572 阅读 · 1 评论 -
REUSE_ALV_FIELDCATALOG_MERGE根据结构名称创建GT_FIELDCAT
源代码:*&---------------------------------------------------------------------**& Report YMYYT9012*&*&---------------------------------------------------------------------**&*&...原创 2019-05-28 15:39:01 · 770 阅读 · 0 评论 -
ABAP消息处理 (Messages)
14. Messages14.1. 00消息ID中的通用消息00消息ID中的001消息本身未设置任何消息串,这条消息可以传递8个参数,在用于拼接消息时很有用MESSAGE e001(00) WITH 'No local currecny maintained for company:' p_bukrs.14.2. 消息常量直接显示消息常量,...转载 2019-06-06 16:50:27 · 6398 阅读 · 0 评论 -
ABAP 视图
视图:视图支持几核查询一个或多个表里存在的数据的功能。在ABAP数据字典中激活视图会在数据库中生产次视图,访问此数据库视图需要用数据库接口进行访问。只是查询必要的表和字段不需要查询没必要的字段,因此可以最小化接口。视图和表一样,可以在ABAP程序的SELECT语句中使用。数据库视图在ABAP数据字典中定义后激活,则会自动在数据库中生成。但在ABAP数据字典中变更数据库视图,则这些变更事项不会直接影...原创 2019-05-29 17:54:28 · 2380 阅读 · 0 评论 -
SAP 金额转换成大写
系统中自带的函数SPELL_AMOUNT适用于没有小数的情况,如果金额带小数,结果就会出现问题,结果如下这里有一个优化过的自定义小写转大写函数,源代码如下:FUNCTIONzfun_convert_money.*"----------------------------------------------------------------------*"*"本地接口:*"IMP...原创 2019-06-03 11:59:03 · 1893 阅读 · 0 评论 -
表字段初始值、NULL等问题
20.17. 表字段初始值、NULL等问题20.17.1. SE11表设置中的Initial Values如果一个表是新创建的,数据库中的所有字段都会被设计成非NULL,此时与钩不钩上“Initial Values”框没有关系,且都会设置默认值,并且所有的主键都会强制将“Initial Values”框钩上该标示只在修改表结构且在现有表结构增加一个字段...转载 2019-06-19 17:52:19 · 1062 阅读 · 0 评论 -
FI12屏幕增强(附带SM30增强)
需求:在FI12新增开户行条目的时候加一段校验逻辑点击系统产看GUI状态,可以看到新条目对应的OK-code为NEWL点击系统查看状态,双击屏幕号查看屏幕逻辑流,并在PAI事件中做单击新条目后的事件的修改,对应NEWL的事件在对应的事件前加限制逻辑的增强点,注意限定程序名称(屏幕字段的名称从屏幕元素清单中取得)附加:维护视图的增强如...原创 2019-06-10 17:02:31 · 1941 阅读 · 0 评论 -
选择屏幕逻辑流
从上面的事件流及程序中看到,SAP的事件包括:1 INITIALIZATION 事件该事件在屏幕未显示之前执行,可对程序设置值及屏幕元素进行初始化设置2 AT SELECTION-SCREEN OUTPUT 事件(pbo)屏幕元素声明完成后执行,并会在程序执行之前优先检查该事件下的所有代码。通常用于对输入值校验数据,如库存是否充足,操作类型是否允许等。...原创 2019-06-04 15:33:21 · 571 阅读 · 0 评论 -
SELECT FOR ALL ENTRIES IN 通过配置优化速度
该语法在生成 Native SQL 时会根据内表数据将 Open SQL 拆分成多条在数据库中执行,在内表数据量较大的时候会发生性能问题.优化 FOR ALL ENTRIES 可以在全局配置参数文件;针对单独的程序可以使用 HINT 语句 覆盖参数文件的值。使用 HINT 可以强行指定 FOR ALL ENTRIES 解析使用的参数: 1 2 3 ...转载 2019-06-21 16:14:43 · 1969 阅读 · 0 评论 -
SELECT SINGLE、SELECT UP TO 1ROWS、ENDSELECT 相关
因业务需求,在一个IF判断内部加了一段代码,报错如上,一开始不能理解,经过排查,发现问题就出自现在这个SQL语句中,以上报错是因为没有加ENDSELECT.使用single : 在where语句中如果使用了全部的key字段可以使用single格式: SELECTsingleField_Name_ListFROMTable_Nam...原创 2019-06-25 17:06:51 · 6798 阅读 · 0 评论 -
记SELECT与MIN()等聚合函数联用后的sy-subrc
今天遇到一个问题,图中的SELECT语句,按照选择条件并不能从表中取出数据,但是DEBUG后发现其sy-subrc = 0,这就是一个问题了,这个问题暂时未找到原因,欢迎大家帮我解惑,后续如果找到答案会更新。附上一种取最大(最小)值的其它方法:...原创 2019-06-18 18:17:06 · 1000 阅读 · 0 评论 -
红绿灯实际值(icon)
SE11查看类型组ICON原创 2019-05-30 16:42:05 · 1067 阅读 · 0 评论 -
SAP的号码范围(number range)SNRO SNUM配置方法
T-CODE:SNRO、SNUM的用法1:Number Range的通用Tcode:SNRO或者SNUM2:Number Range的通用读取函数:NUMBER_GET_NEXT3:如有跳号现象,可以禁用对象的Buffer试试4:sap numbe range在标准程序中使用一直不明白会计凭证编号sap是怎么做到连续编号,还以为是简单的做个全局变量,虽然形式差不多,但是sap有专门的TC...转载 2019-05-13 17:03:40 · 11720 阅读 · 0 评论 -
SE11搜索帮助
现有表 ZARA005T。WERKS 和MATNR 都是自定义的数据元素,因此目前没有搜索帮助。表数据如下。我们先创建搜索帮助选基本。输入表名和字段。在这里简单说明一下下图中哥哥字段的作用。搜索帮助参数:在F4中显示的字段。IMP: 如果在屏幕中相同名字的字段里有值,F4将会只显示符合该值的内容。EXP:如果在屏幕中有相同名字的字段,将F4的选择数据返回到...转载 2019-05-21 18:29:10 · 3099 阅读 · 0 评论 -
防止长时间不操作掉线和进度条
平时在使用培训系统时,总是会出现长时间不操作系统掉线需要重新登陆的情况,之前一个小伙伴分享给了我一段防止掉线的代码,现分享如下:DATA : TEXT TYPE STRING, TIME TYPE I.TIME = 0.CONCATENATE 'Please open another session for working' '!' INTO TEXT.DO. CALL ...原创 2019-04-26 17:57:57 · 1988 阅读 · 0 评论 -
测试接口是否通畅的两种方法
测试接口是否通畅的两种方法方法1(SM59)方法2(代码)方法1(SM59)双击要查看的接口单击连接测试即可查看接口是否连通方法2(代码)代码测试SY-SUBRC=0则通畅,在调用外部接口之前可以先测试接口是否通畅。REPORT zhandyy_rfc_test.DATA : BEGIN OF rfctab OCCURS 0.INCLUDE STRUCTURE rfctest...原创 2019-04-18 15:14:43 · 5140 阅读 · 0 评论 -
ABAP 值传递与引用传递
在ABAP/4中参数的传递可分成1. Call By Reference(引用传递):传参数时将资料的存放地址(address)传至参数中, 也就是子程序中的参数变量与外部实际变量共享地址内的值, 又称为 Call By Address, 如果在子程序中地址中的值改变了, 外部实际变量的值也会跟着改变.系统默认不应该更改Using参数,会报警告:结果:2. Call By Valu...原创 2019-04-18 15:27:41 · 2517 阅读 · 1 评论 -
SE16N与SE11字段描述不同
客户反映,SE16N表中的两个字段的描述一致,要更改其中一个字段的描述,区分两个字段,去SE11表里查看后发现表里两个字段的描述是不同的,并不是SE16N看到的情况,经检查后发现:SE16N对应的描述为SE11字段的数据元素字段标签中的描述而非简短描述:于是修改了SE11表中一个字段的描述,但是发现SE16N中怎么弄这个字段的描述都还是原来的,并没有改变。最后发现是缓存的问题/$SYNC ...原创 2019-04-18 16:49:19 · 3191 阅读 · 1 评论 -
自建类SE16N功能,修改数据库表数据
其实自建SE16N功能,并让它可以直接修改数据库表数据,其原理与在SE16N中DEBUG修改EDIT参数的原理一样,只是在调用标准的函数组时把入参稍作修改即可。实现代码如下:REPORT zse16n.PARAMETERS:p_tabnm TYPE dd02l-tabname OBLIGATORY.AT SELECTION-SCREEN. SELECT COUNT(*) ...原创 2019-05-09 10:08:07 · 880 阅读 · 0 评论 -
ABAP选择屏幕单击按钮跳转到SM30维护界面
做某些ALV报表时,可能需要为自建表维护数据作为配置表,以下就是在选择屏幕上设置快捷按钮,通过按钮跳转到SM30数据维护界面为配置表维护数据。单击按钮跳转到数据维护界面在PBO事件之前,定义按钮并初始化,代码如下:注意:在程序的开始声明TABLES参数SSCRFIELDS.代码如下:*---------------------------------------------------...原创 2019-05-14 18:51:20 · 2668 阅读 · 0 评论 -
ABAP 向上取整与向下取整的两种方式
1. ceil() 和floor()Ceil()是向上取整,floor()是向下取整下面是一段关于CEIL 和 FLOOR 的代码DATA:a TYPE mseg-menge, b TYPE mseg-menge, c TYPE mseg-menge.a = '1.36'.b = '1.34'.c = a / b.c = CEIL( a / b ).WR...原创 2019-05-15 11:40:57 · 6792 阅读 · 0 评论 -
XML与ABAP数据的相互转换
DATA转换成XML方法(注意如果数据的值与数据类型不匹配会dump)FUNCTION YMCAFG_DATA2XML.*"----------------------------------------------------------------------*"*"本地接口:*" IMPORTING*" REFERENCE(I_DATA)*" REFERENC...原创 2019-05-10 15:38:36 · 1253 阅读 · 0 评论 -
ABAP DEBUG调试代码的八种方式
1. 直接在程序中设断点在se38里面打上breakpoint,程序运行到该处即进入debug模式2.background Job的debug进入SM37 查找到自己想要debug的后台程序,这里运行完毕或者正在运行的均可进入debug查找到后打中job前面的勾 然后在控制框输入JDBG回车,即进入debug 3.在程序运行界面进入debug在程序的控制框输入/H,运行程序的时...转载 2019-05-20 17:41:19 · 727 阅读 · 0 评论 -
程序间获取ALV显示数据(读取ALV GRID上的数据)
程序间获取ALV数据的两种方法:方法1:通过修改SUBMIT的目标程序,把内表EXPORT到内存,SUBMIT后IMPORT ,该方法需要修改目标程序,可以任意设置目标程序的中断点;*Execute transaction IA09 to get all Functional Location Tasklists SUBMIT riplko10 WITH SELECTION-TAB...原创 2019-05-15 18:42:22 · 702 阅读 · 0 评论 -
ABAP Memory、SAP Memory、Shared Buffer、Database
ABAP 提供了IMPORT/EXPORT 和 SET / GET PARAMETER 语句,可对用户内存/服务器内存/数据库进行存储和访问。不过可能很多人对此还不是很了解,下面我们通过实例来测试它们的区别和联系。ABAP Memory用户登陆后,最多一个系统可以开6个窗口,这在SAP中称为External Mode。而同一个窗口中,运行某程序后,可以通过CALL TRANSACTION/...转载 2019-05-21 14:59:47 · 882 阅读 · 0 评论 -
Include结构复用
TYPES BEGIN OF struc_type.TYPES comp …TYPES comp TYPE struc_type BOXED. "参照另一结构类型INCLUDE { {TYPE struc_type} | {STRUCTURE struc} } "将另一结构包括进来[AS name [RENAMING WITH SUFFIX suffix]].TYPES END OF s...转载 2019-04-26 16:21:30 · 534 阅读 · 0 评论