带你来 SAP 程序员的快乐星球

作者:ABAP技巧与实战 约 7 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发
带你来 SAP 程序员的快乐星球 - 封面图
带你来 SAP 程序员的快乐星球 - 封面图

[ ABAP 技巧与实战 ](javascript:void\(0\);)

以下文章来源于故事与茶 ,作者故事与茶

带你来 SAP 程序员的快乐星球 - 封面图
带你来 SAP 程序员的快乐星球 - 封面图

**故事与茶** . 热爱工作又不能去上班的时候,不妨找个地方来一起玩工作。

带你来 SAP 程序员的快乐星球 - 封面图
带你来 SAP 程序员的快乐星球 - 封面图

**什么是程序员快乐星球?**

什么是ABAP的快乐星球

我现在就带你研究

茫茫的序列里

到底有没有存在程序的不二义性

人类是否能够全部掌握开源开发

**ABAP CLUB**

**ABAP技巧与实战群**

**前言**

**————**

建群以来

群主本着为ABAP实战答疑解惑的初心

一直为广大ABAP程序员总结着他的项目成果

并指导和探讨小伙伴们提出的各种问题

希望ABAPer少走弯路

在“ABAP技巧与实战”群里

大家积极提问

积极解答

很少看到这样务实的群

诚请同样务实的你来参加。

本文作为一个引子

通过一些平时容易忽略的小问题

来纠正一下大家的代码习惯

之后会陆续有更多较为复杂的 **群内答疑记录**

欢迎大家来到我们

属于“ABAP程序猿”的快乐星球。

**_Q1_ **

_** "表 " ** _ _** ** _ **_操作_ **

来到程序世界的大门,最早了解的是 算法 (数据结构)和 数据库。

先来看看SAP的 Table。通用的关系型数据库,会定义表、视图等,SAP在SE11的数据定义中还有结构、其他数据字典(数据元素、锁对象等等……)

带你来 SAP 程序员的快乐星球 - 封面图
带你来 SAP 程序员的快乐星球 - 封面图

上图是发生在群里4.6日的一个小问题。

带你来 SAP 程序员的快乐星球 - 封面图
带你来 SAP 程序员的快乐星球 - 封面图
带你来 SAP 程序员的快乐星球 - 封面图
带你来 SAP 程序员的快乐星球 - 封面图
带你来 SAP 程序员的快乐星球 - 封面图
带你来 SAP 程序员的快乐星球 - 封面图

**更改表结构异常**

** 小知识Tips **

** 更改表结构行为准则 **

1、任何异常先稳住(不要跑路!面对错误,才能成长,虽然背锅的程序猿也有去里面的了)

2、积极思考程序异常事件原理。

3、及时求救。(ABAP技巧与实战群 是您居家旅游必备良药哈)

4、更改表结构需要备份表及对应数据(SAP复制表非常简单,再通过简单代码进行 **原数据备份** )

5、重点字段类型特别注意(SAP的 **23** 种数据类型中,1. **非CHAR** 的类型的变更,如dec,fltp,curr等字段类型变化、2.

**CHAR** 类型或其他类型变短 等操作都会导致数据异常)

从安全角度,仍然建议 **备份数据!备份数据!备份数据!虽然basis...**

**_Q2_ **

_** " 程序 " 语言 ** _

SAP的程序几乎绕不开SQL语句,这里仅根据小伙伴的提问,强调一下For all entries 的用法里的关键注意点。

带你来 SAP 程序员的快乐星球 - 封面图
带你来 SAP 程序员的快乐星球 - 封面图

下图是5.10日,初学的小伙伴犯的错误

带你来 SAP 程序员的快乐星球 - 封面图
带你来 SAP 程序员的快乐星球 - 封面图
带你来 SAP 程序员的快乐星球 - 封面图
带你来 SAP 程序员的快乐星球 - 封面图
带你来 SAP 程序员的快乐星球 - 封面图
带你来 SAP 程序员的快乐星球 - 封面图

**读表程序异常**

** 小知识Tips **

** 采用For all entries in 读表行为准则 **

1、必 **须要判断For all entries in后面的内表是否为空**

,如果它为空的话,那么在where条件中的与内表中字段进行比较的结果全部为真,也就是全部满足条件,这会导致取出非常多的数据,极大地影响系统的性能。

2、For all entries in 语句自带 disdistinct

功能,如果所选的结果集指定字段有重复,只选出一行。如果需要每条数据进行处理,建议主键必须全包含。

3、最好能够将for all entries in

后面内表中的重复项去除,能够更大的增强速度,后面内表中的数据不要过多,最好不要超过5000行,当然,系统是按照结果集的大小,超出老版本系统也会dump。

4、 查询完的SQL数据,第一时间写出 if sy-subrc = 0.

良好的习惯能减少很多意外的错误。把所有可能Dump的情形都提前设想,并获取。DUMP对关键用户的打击杀伤性极强。

5、查询中 **不要写硬代码** ,尽量从相关关系表中获取,不要相信当前项目的FS,代码会留存得比某次项目时间更长,不是一个项目的顾问能够确定的 **。**

**

**

**

**

下列清单是群里近期各种问题

请大家积极留言

一起来发掘欢乐和答案

ABAP实战与技巧,群内问题收集如下:

1、SAP如何与手写板做接口,接收手写板的签名图片?

2、MIRO中发票类型字段如何隐藏?(SAPLMR1M SAPLFDCB)

3、视图簇 SE54 视图簇一般用来配置有层级关系的配置表(当然也可以不用视图簇, 自行添加层级关系,只是不够严谨) .

有些人用视图簇作为配置管理树管理的一种方式, 就不太合适了. 建议你看看公众号文章 关于配置树的.

4、LT数据同步配置 ?ERP->CAR/POSDM/BW 传输 怎么进入这个视图界面/ LTRC

"5、咨询个问题,想不通 CDS为什么一定要ADT写

感觉这种代码,SAP GUI 里面也能写啊"

6、如何修改采购订单中的会计汇率?

7、各位大佬 ME38下的 行项目的标准的 table control 要加列,你们做过类似的吗?是直接改标准屏幕做吗?

8、请教个问题,BDC前台执行可以,丢到SM35里去执行为何报错功能吗不能被执行,同一份数据

9、破解登录密码的文章里,密码能否写个程序生成?给个算法。

10、循环中的表定位,ASSIGN用法

11、XML的信息如何快速解析?

12、求PIPO资料

13、为啥SOAMANAGER进来会出现异常报错?

14、请教一下,webservice接口传照片数据时候,数据大,有什么办法能优化一下这个数据吗?500多条数据300多M?

15、请教一下屏幕上两个复选框,怎么实现二选一的情况?

**_Ending_ **

_** " 吃瓜 " 小编的日常 ** _

什么是快乐星球,一星球已满员,二星球建设中,会定期将一星球的问题清单发布给二星球,积极提问与解答,专属红包同样有哈。

带你来 SAP 程序员的快乐星球 - 封面图
带你来 SAP 程序员的快乐星球 - 封面图

小编仅仅是群内打杂吃瓜,就已经觉得很欢乐了,快来一起领取这个夏日的程序员专属快乐福利。

带你来 SAP 程序员的快乐星球 - 封面图
带你来 SAP 程序员的快乐星球 - 封面图

**群内有答题专属红包奖励**

ABAP技巧与实战

关于作者:ABAP技巧与实战

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「带你来SAP程序员的快乐星球.md」整理生成,仅用于内部技术分享与学习交流。