什么是程序員快樂星球?
什么是ABAP的快樂星球
我現在就帶你研究
茫茫的序列里
到底有沒有存在程序的不二義性
人類是否能夠全部掌握開源開發
ABAP CLUB
ABAP技巧與實戰群
前言
————
建群以來
群主本著為ABAP實戰答疑解惑的初心
一直為廣大ABAP程序員總結著他的項目成果
并指導和探討小伙伴們提出的各種問題
希望少走彎路
在“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 的用法里的關鍵注意點。
下圖是5.10日,初學的小伙伴犯的錯誤
讀表程序異常
小知識Tips
采用For all in 讀表行為準則
1、必須要判斷For all in后面的內表是否為空abap內表指定行添加,如果它為空的話abap內表指定行添加,那么在where條件中的與內表中字段進行比較的結果全部為真,也就是全部滿足條件,這會導致取出非常多的數據,極大地影響系統的性能。
2、For all in 語句自帶 功能,如果所選的結果集指定字段有重復,只選出一行。如果需要每條數據進行處理,建議主鍵必須全包含。
3、最好能夠將for all in 后面內表中的重復項去除,能夠更大的增強速度,后面內表中的數據不要過多,最好不要超過5000行,當然,系統是按照結果集的大小,超出老版本系統也會dump。
4、查詢完的SQL數據,第一時間寫出 if sy-subrc = 0. 良好的習慣能減少很多意外的錯誤。把所有可能Dump的情形都提前設想,并獲取。DUMP對關鍵用戶的打擊殺傷性極強。
5、查詢中不要寫硬代碼,盡量從相關關系表中獲取,不要相信當前項目的FS,代碼會留存得比某次項目時間更長,不是一個項目的顧問能夠確定的。
下列清單是群里近期各種問題
請大家積極留言
一起來發掘歡樂和答案
ABAP實戰與技巧,群內問題收集如下:
1、SAP如何與手寫板做接口,接收手寫板的簽名圖片?
2、MIRO中發票類型字段如何隱藏?( )
3、視圖簇 SE54 視圖簇一般用來配置有層級關系的配置表(當然也可以不用視圖簇, 自行添加層級關系,只是不夠嚴謹) . 有些人用視圖簇作為配置管理樹管理的一種方式, 就不太合適了. 建議你看看公眾號文章 關于配置樹的.
4、LT數據同步配置 ?ERP->CAR/POSDM/BW 傳輸 怎么進入這個視圖界面/ LTRC
"5、咨詢個問題,想不通 CDS為什么一定要ADT寫
感覺這種代碼,SAP GUI 里面也能寫啊"
6、如何修改采購訂單中的會計匯率?
7、各位大佬 ME38下的 行項目的標準的 table 要加列,你們做過類似的嗎?是直接改標準屏幕做嗎?
8、請教個問題,BDC前臺執行可以,丟到SM35里去執行為何報錯功能嗎不能被執行,同一份數據
9、破解登錄密碼的文章里,密碼能否寫個程序生成?給個算法。
10、循環中的表定位,用法
11、XML的信息如何快速解析?
12、求PIPO資料
13、為啥進來會出現異常報錯?
14、請教一下,接口傳照片數據時候,數據大,有什么辦法能優化一下這個數據嗎?500多條數據300多M?
15、請教一下屏幕上兩個復選框,怎么實現二選一的情況?
" 吃瓜 " 小編的日常
什么是快樂星球,一星球已滿員,二星球建設中,會定期將一星球的問題清單發布給二星球,積極提問與解答,專屬紅包同樣有哈。
小編僅僅是群內打雜吃瓜,就已經覺得很歡樂了,快來一起領取這個夏日的程序員專屬快樂福利。
群內有答題專屬紅包獎勵