SAP VBKD表
SAP VBKD表是一個(gè)略為奇怪的表。
如下圖所示,我創(chuàng)建并保存了一個(gè)銷售訂單, 當(dāng)我又修改了該訂單并保存后, 訂單中只有一條行項(xiàng)目, 可是系統(tǒng)卻向VBKD表中寫了兩條,并且兩條內(nèi)容是完全相同的,僅僅是行項(xiàng)目號(hào)一個(gè)是10,一個(gè)是空。
不大清楚它的邏輯,這樣理解不知道對(duì)不對(duì),項(xiàng)目行“0000”(就是空)可以說(shuō)是表頭的數(shù)據(jù)的,是直接是從客戶主數(shù)據(jù)帶來(lái),可以修改。修改后項(xiàng)目行還是“0000”。如果你是爭(zhēng)對(duì)行項(xiàng)目來(lái)的話修改會(huì)在VBKD增加行項(xiàng)目POSNR行,如果是針對(duì)行來(lái)講先找到行對(duì)應(yīng)的數(shù)據(jù)(就是inner join的時(shí)候要是加入了posnr的條件,必須是行項(xiàng)目上面的修改后才有),如果沒有就是找“0000”行項(xiàng)目的數(shù)據(jù)。
所以說(shuō)我們需要取這個(gè)表里面的某些記錄的時(shí)候(比如匯率啊,定價(jià)日期啊等等),最好取抬頭層次的。
??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'.
這樣一寫還是比較靠譜的,僅此備忘錄,希望了解的朋友回復(fù)。
總結(jié)
- 上一篇: ABAP如何生成UUID
- 下一篇: 2017,SAP向云看齐