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

什么是程序员快乐星球?

什么是ABAP的快乐星球

我现在就带你研究

茫茫的序列里

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

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

ABAP CLUB

ABAP技巧与实战群

前言

————

建群以来

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

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

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

希望ABAPer少走弯路

在“ABAP技巧与实战”群里

大家积极提问

积极解答

很少看到这样务实的群

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

本文作为一个引子

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

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

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

欢迎大家来到我们

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

Q1

"表 " 操作  

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

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

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

更改表结构异常

小知识Tips

更改表结构行为准则

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

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

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

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

5、重点字段类型特别注意(SAP的23种数据类型中,1.非CHAR的类型的变更,如dec,fltp,curr等字段类型变化、2.CHAR类型或其他类型变短 等操作都会导致数据异常)

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

Q2

 " 程序 " 语言  

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

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

读表程序异常

小知识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

 " 吃瓜 " 小编的日常  

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

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

群内有答题专属红包奖励

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值