SAP VBKD表
SAP VBKD表是一個略為奇怪的表。
如下圖所示,我創建并保存了一個銷售訂單, 當我又修改了該訂單并保存后, 訂單中只有一條行項目, 可是系統卻向VBKD表中寫了兩條,并且兩條內容是完全相同的,僅僅是行項目號一個是10,一個是空。
不大清楚它的邏輯,這樣理解不知道對不對,項目行“0000”(就是空)可以說是表頭的數據的,是直接是從客戶主數據帶來,可以修改。修改后項目行還是“0000”。如果你是爭對行項目來的話修改會在VBKD增加行項目POSNR行,如果是針對行來講先找到行對應的數據(就是inner join的時候要是加入了posnr的條件,必須是行項目上面的修改后才有),如果沒有就是找“0000”行項目的數據。
所以說我們需要取這個表里面的某些記錄的時候(比如匯率啊,定價日期啊等等),最好取抬頭層次的。
??SELECT?VBAK~BUKRS_VF?AS?BUKRS
?????????VBAK~VKORG
?????????VBPA~KUNNR
?????????VBAP~VBELN
?????????VBAP~POSNR
?????????VBAK~WAERK
*?????????VBAK~KUNNR
?????????VBAP~KZWI1
?????????VBKD~KURSK ?
?????FROM?VBAP
????INNER?JOIN?VBAK?ON?VBAK~VBELN?=?VBAP~VBELN
????INNER?JOIN?VBUP?ON?VBUP~VBELN?=?VBAP~VBELN
???????????????????AND?VBUP~POSNR?=?VBAP~POSNR
????INNER?JOIN?VBPA?ON?VBPA~VBELN?=?VBAP~VBELN
????INNER?JOIN?VBKD?ON?VBKD~VBELN?=?VBAP~VBELN?"很容易重行
????INTO?CORRESPONDING?FIELDS?OF?TABLE?GT_VBAK
????WHERE?VBAK~BUKRS_VF?IN?S_BUKRS
??????AND?VBPA~KUNNR?IN?S_KUNNR
??????AND?VBPA~PARVW?=?'AG'
??????AND?VBAK~VBTYP?=?'C'
??????AND?VBAK~ERDAT?IN?S_BUDAT?
??????AND?VBKD~POSNR?=?'0000'
??????AND?VBUP~LFGSA?=?'A'.
這樣一寫還是比較靠譜的,僅此備忘錄,希望了解的朋友回復。
總結
- 上一篇: ABAP如何生成UUID
- 下一篇: 2017,SAP向云看齐