SAP學習6 內錶

2021-06-25 14:54:54 字數 2336 閱讀 5451

內錶的種類:

1. 標準表(standardtable).系統為該錶的每一行資料生成一行資料生成乙個邏輯索引.填充標準表時,可以將資料附加在現有行之後,也可以插入到指定的位置,程式對內錶行的定址操作可通過關鍵字或索引進行.在對錶進行插入,刪除等操作時,各資料行在內在中的位置不變,系統僅重新排列各資料行的索引值.

2. 排序表(sortedtable).與標準表相同,也具有乙個邏輯索引,但其按關鍵字公升序排序後再進行儲存,其訪問方式與標準表相同.

3. 雜湊表(hashedtable).沒有索引,只能通過關鍵字來訪問.系統用雜湊演算法管理表中的資料,因而其定址乙個資料行的時間與表的行數無關.

1. 工作區.程式對內表的操作不能直接進行,必須通過一種介面來傳輸,這個介面就是工作區(workarea).如果程式需要從關聯式資料庫中撮資料到內錶各行中,必須先將資料讀入工作區,然後把工作區中的資料賦給內錶的行.工作區必須具有和內錶的行一致或者可相互轉換的資料結構.

2. 表行頭.在建立內錶物件的同時可以隱式地定義乙個同名工作區.建立了帶表頭的內錶之後,可以認為程式中存在兩個資料物件,乙個是內錶,另乙個與內錶結構相同的結構體.如果乙個語句中,該名稱同時代表內錶或同名表的工作區,則需要在內表名稱之後加「」。

3. 插入行.(insert語句)語法: 

insert line into itab indexidx.」通過索引插入單行. 

4. 5. 

聚集附加.(collect語句)collect line intoitab.要求:內錶必需為扁平結構,行要與工作區相容,而且除關鍵字以外的字段必須為數字型別.

6. 讀取一行.(read語句)read table itab [into wa| assigning] indexidx.讀取的結果可以是結構與行型別相容的工作區或字段符號.如果讀取成功,則sy-tabix返回該行的索引.一般在訪問目標工作區之前,要先用sy-subrc欄位檢視一下讀取成功與否.readtable itab from key [into wa|assigning].目標資料結構中的關鍵字段必須已經被預賦值,內錶中相同關鍵字的首個資料行中的其他欄位將被讀入目標區域中.readtable itab with table key k1 = f1 …ki = fi [into wa |assigning].指定表中的所有表關鍵字段的值,目標結構在操作前可以為任何值,內錶資料行整體讀入目標區域.readtable itab with key k1 = f1 …ki = fi [into wa|assigning].key列表可以為任意字段,不一定是表關鍵字.

7. 修改一行.(modify語句)modify itab [from wa] [index idx][transportingf1,f2…].使用from選項指定的工作區域wa代替itab中索引為idx的現有行,一般需要指定index選項.modifytable itab from wa [transportingf1,f2…].工作區域wa在語句操作過程中起到雙重作用,其一是根據其關鍵字段的值來確定需要替換的內錶的行;其二是根據其他非關鍵字段的值來替換內錶行中相應欄位的資料.如果只希望更新部分欄位的值,可以使用transporting選項.modifyitab from wa transporting f1,f2…where cond.使用where選項修改多行.

8. 刪除一行.delete語句.delete itab indexidx.如果刪除成功,則所有行的索引數減一,sy-subrc值為0,如果不存在索引行為idx,則sy-subrc返回4.deletetable itab from wa.delete table itab with key k1 = f1…ki =fi.delete table [from n1 ][to n2][where].

9. 迴圈處理.loop at itab [fromn1][to n2] [where]. 

.endloop.

10. 

初始化內錶.

clearitab.該語句將內錶重置為填充前的狀態,該錶將不包含任何行.如果內錶有表頭行,會同時清空內錶資料行和表頭行的內容.

clear itab.只希望初始化內錶本身,保留表頭行的內容.refre****ab.如果內錶有表頭行,該語句確保只初始化內錶本身.free itab.使用clear或refresh初始化內錶後,系統仍保持在內在中為內錶預留的空間.該語句可以重置內錶並同時釋放其記憶體,而不必先使用refresh或clear語句.…itabis initial…

11. 

整體複製內錶.如果想將內錶的全部內容複製到另乙個內錶中,可以進行整體賦值操作,使用move或」=」.move itab1 toitab2.itab1 = itab2.

12. 

比較內錶大小.內錶可用作邏輯表示式的運算元進行比較.…itab1itab2…其中可以為操作符eq,=,ne,<>,><,ge,>=,le,<=,gt,>,lt,《等. 業務表的操作.

JSON和SAP內錶轉化

二 內錶結構轉json josn格式,key 和value是帶雙引號的,使用 ui2 cl json deserialize反序列化 如下面的json格式 定義內錶 data begin of it itab occurs 0 sqdh 200 type c,matnr 36 type c,posn...

SAP 內錶的控制層處理 at

at 控制結構用來在loop 內錶時實現控制中斷處理。at first 和at last 表現為第一次和最後一次轉 換,只執行一次。在at new endat 之間的語句在字段的 值改變時執行,指出了控制層的開始。在at end of endat 之間的語句當字段的值改變時執 行,指出控制層的結束。...

上載EXCEL檔案到SAP系統內錶FUNCTION

思路 在選擇螢幕中點開選擇電腦中需要上傳的excel檔案 perform filesystem show changing g subrc p file.檔案上傳後用相應functiong傳到內錶中。zhrit101 form filesystem show changing pl subrc ty...