- 博客(30)
- 收藏
- 关注
原创 SAP 应用日志
SBAL_DEMO_04 (花式display log): log可以display成不同的样式,例如单条log,多条log,树状显示,层级显示等等。用BAPI_MATERIAL_MAINTAINDATA_RT创建物料主数据,出来的错误消息是一个日志号。SLGD: 查看Application log(详细的筛选条件)BAL_DSP_LOG_DISPLAY: 显示log。APPL_LOG_READ_DB通过日志号查出报错。BAL_LOG_MSG_ADD: 写入一条log。BAL_LOG_CREATE:创建。
2025-03-28 13:42:18
236
原创 SAP ALV日期字段显示初始值
在SAP中日期和时间字段的初始值就为00000000/000000,所以在未赋值的情况下,ALV显示为一堆0。ALV中日期和时间字段在未赋值的情况下显示为一堆0,用户要求显示空白。解决方案:将FIELDCAT中的NO_ZERO设置为'X'完成上述设置后,ALV出现(/ 或 -)如下图。审查后发现是没有给参考表赋值所导致。
2025-02-25 13:47:47
232
原创 采购订单(ME21N/ME22N)增强
采购订单行项目增强结构:CI_EKPODB、CI_EKPODB。EXIT_SAPMM06E_006 为子屏幕参数传入出口(抬头)EXIT_SAPMM06E_008 为子屏幕参数传出出口(抬头)EXIT_SAPMM06E_016 为子屏幕参数传入出口(项目)EXIT_SAPMM06E_018 为子屏幕参数传出出口(项目)4、BADI:ME_HOLD_PO 暂存增强(取消暂存按钮)0101为采购订单抬头屏幕 0111为采购订单行项目屏幕。记录一下ME21N/ME22N相关的增强,不涉及具体实施。
2025-02-20 15:40:45
355
原创 SAP 邮件
实现邮件发送的方式很多,大体分为调用API1 Function发送和用类CL_BCS发送。API1 Function:(非本文重点,不细讲)1、SMICM查询SMTP端口,没有就创建一个。1、SOST:所有待发送的邮箱清单。后面一路继续就行,创建完长这样。2、SOOD:邮件内容(附件)2、SCOT:邮件管理和配置。2、RZ10需新增两个参数。1、SOST:邮件状态日志。4、SO01:邮件工作区。4、SCOT配置代理邮箱。3、SBWP:发送邮件。点击使用向导创建节点。
2024-10-07 15:06:00
4066
原创 SAP DEMO
4、一些ABAP语句的demo,比如:inner join。SAP提供了很多的标准程序,DEMO以供参考,下面是一些找DEMO的关键词。一个包含很多DEMO的包:SABAPDEMOS。3、dynpro屏幕开发的demo。5、report程序的demo。1、OO 的一些程序模板。7、字符串处理的demo。
2024-08-15 13:40:01
263
原创 可能会用到的标准表(持续更新)
DD02L:SAP-表,记录每张数据库表和自定义表的表相关信息。DD03L:定义字段,记录数据表和自定义表中每个字段相关信息。TRDIR:可根据查找程序(如找自己开发的所有程序)
2024-08-09 16:52:43
229
原创 ABAP LOOP AT事件块
进入AT事件块后,工作区中的值除了key字段,其他字段会全部变为默认值,字符型字段值全变为*,数值全部变为0。(ON CHANGE OF不会)再AT 和 ENDAT之间不能再使用LOOP语法;使用AT事件时要提前对内表进行排序sort;LOOP不能加where条件;
2024-08-07 13:47:21
449
原创 ABAP GET TIME相关语句
UTC(UTC, Universal Time Coordinated,通用协调时)时间戳,分为长时间戳和段时间戳,其中长时间戳餐开始的系统的数据元素TIMESTAMPL,类型为DEC(21,7);而段时间戳参考的系统数据元素为TIMESTAMP,类型为DEC(15,0)。GET TIME STAMP FIELD:获取当前系统的时间戳(时间戳可以是长类型,也可以是短类型)程序运行后sy-uzeit已经写入内存,得用get time语句来刷新sy-uzeit。
2024-07-04 15:29:31
428
原创 F-02\FB01增强
更新函数无法直接Debug,需要在debug时候在设置哪里开启更新调试(update debugging)笔者想用abap内存来实现该要求,后再Debug过程中发现abap内存进update fm被清空了,之前写过VF02和MIRO的增强,这次顺带把F-02\FB01\FB02\FB03的增强也给写了。屏幕增强内表,此时内表的主键为空(还未过账),需要过账是保存到数据库中。要求和之前的几乎一样,故代码直接用即可,唯一的问题就是找增强。屏幕增强写好了,现在该写过账增强了。代码与前两篇类型,可参照着写。
2024-06-05 14:51:35
1530
原创 ABAP 内表动态排序ABAP_SORTORDER_TAB
NAME为排序字段,DESCENDING:'X' (降序排序) or ' ' (默认为升序排序 ),ASTEXT:'X'(作为文本)或' '(不是作为文本(默认))。SORT itab BY (ABAP_SORTORDER_TAB),对动态内表进行排序。
2024-05-30 15:31:10
358
原创 控制单元格可编辑
首先在ALV输出的内表中加入LVC_T_STYL字段,然后LAYOUT设置stylefname = 该字段(代码中的CELLSTYLE)要实现ALV单元格控制需要用LVC_T_STYL(LVC_S_STYL)更改内表某一行的CELLSTYLE字段,即可实现单个单元格的控制。
2024-05-22 15:56:50
426
原创 获取某个帐号的某个权限对象的值
我需要先判断是否有两者权限,而又因为werks非必填,即存在不填的可能性,故需要在未填工厂的情况下只查询(或其他操作)该用户拥有权限的工厂。举个例子,就是笔者写的某个程序权限检查,改权限对象有两个权限对象(ACTVT:操作权限,WERKS:工厂权限)AGR_TEXTS:用于层次菜单的文件结构-客户。AGR_TCODES:将角色分配到事务代码。V_USERNAME:视图,用于读取用户名。AGR_USERS: 分配角色到用户。AGR_1251:活动组的权限数据。标题取得有点绕,语文功底不过关。
2024-05-14 16:25:18
244
1
原创 OOALV 每次都是显示第一次传入的alv,第二次赋值覆盖不了的问题
笔者接到一个问题,OOALV 每次都是显示第一次传入的alv,第二次赋值覆盖不了的问题。看了下代码,发现原代码只用了CLEAR来清理ALV容器。
2024-05-07 16:35:10
183
1
原创 ABAP Read Table相关用法
TRANSPORTING NO FIELDS:不输出字段,只判断是否存在(与IF SY-SUBRC一起搭配)*WITH TABLE KEY 后必须把表的所有关键字都加上,WITH KEY不用。WITH KEY/WITH TABLE KEY:通过内表的主键来查找。BINARY SEARCH:二分法(使用前需排序,常识不用多说吧)COMPARING ALL FIELDS:查找所有字段。TRANSPORTING:只输出设置的字段数据。INDEX :索引,根据内表索引来查找。COMPARING:只查找设置的字段。
2024-04-29 17:04:19
1675
1
原创 ALV全选时去掉被筛选掉的行
GET_FILTERED_ENTRIES:过滤列表。GET_SELECTED_ROWS:获取所选行。各位有兴趣可以进去看看相关代码。好像还是很水,哈哈哈哈哈。
2024-04-29 15:39:27
201
1
原创 ABAP 加前导零,去前导零
根据数据元素参考的长度,自动添加(去除)一定数量的前置零,但也因此遇到STRING类型时需要用WIDTH 来限制字符长度。去前导零 CONVERSION_EXIT_ALPHA_OUTPUT。加前导零 CONVERSION_EXIT_ALPHA_INPUT。更多字符串用法可看笔者之前的文字。
2024-04-27 10:16:27
2158
原创 SAP调用API
调用API会有SSL检查,会报500 SSL Peer错误,这时我们需要向SAP导入证书。2.另外需要找服务器管理员,在SAP服务器能不能PING 通接口地址,可能需要设置DNS。证书导出后,进入STRUST 事务代码,导入证书。1.数据格式或者程序代码问题。然后重启一下ICM就好了。如果还报错404那说明是。SAP调用启信宝API。
2024-04-22 13:53:12
692
原创 VF01/VF02/VF03 屏幕增强后续
上一篇写完发现需求有变,不得已又重新写过,本不想又水一篇,但又想了想还是觉得记一下吧。大致和VF01/VF02/VF03 屏幕增强操作一致,我就不水了,需要可以看我上一篇。现改成了在页签上加一个alv,如下图。
2024-04-22 13:20:09
217
原创 ABAP程序性能优化
1、不使用select ...... not select2、尽可能减少查询出来的数目条数,多使用where来限制数据3、尽量减少访问的数据库数量4、避免使用select * ,不要偷懒,应该只查询需要的字段5、不要在select语句中使用order by,sort语句更加高效6、使用for all entries in要注意后面接的内表不能为空7、如果版本是752及以上,推荐用inner join关联内表8、不要在loop里面使用select,特别是内表数量很大。
2024-03-26 14:18:31
432
原创 ABAP字符串处理
语法:SHIFT <str> LEFT[RIGHT] DELETING LEADING <c>.假设<str>左边的第一个字符或右边的最后一个字符<c>出现在中,该语句将字段 <str>向左或向右移动。字段右边或左边 用空格填充。<str> 可为变量。
2024-03-21 17:13:43
2414
1
原创 数据类型与一些基础语法
比较运算符:EQ或=(等于)、NE或<>(不等于)、LT或<(小于)、GT或>(大于)、LE或<=(小于等于)、GE或>=(大于等于)NP (NOT Contains a Pattern) 它检查 A 是否不包含 B 中的模式。CN (Not Contains ONLY) 检查 A 中是否包含 B 中不存在的字符。算术运算符:加+、减-、乘*、除/、整除div、取余mod、乘方x**y。赋值语句:move <变量1> to <变量2>.逻辑运算符:AND(与)、OR(或)、NOT(非)
2024-01-12 08:42:26
380
1
原创 abap 选择屏幕
是包含在选择画面(1000)的标准GUI的功能按钮,最多只能有5个,功能码是FC1~FC5.也是系统预留好的。然后,以上被定义的按钮的图标和文本描述都是可以设定的,在tables:sscrfields的functxt_01 ,functxt_02,functxt_03..............WHEN 'FC01'. "最多只能有5个,功能码是FC1~FC5.也是系统预留好的ENDCASE.
2023-12-05 17:05:51
1825
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人