如何选择正确的读取SD的数据表,提高程序性能

SD Table Access – SAP Note 185530

Read SAP Note 185530 before developing new SD report or if your SD report is running slow.

1. Accesses to sales orders (tables VBAK, VBAP)

Search orders for customer number (field VBAK-KUNNR)
If you want to look for sales order for a customer do not directly select from VBAK, instead first select on VAKPA and then based on what sales order you get execute second select in VBAK to get additional data.

IncorrectSELECT FROM vbak WHERE kunnr = …
CorrectSELECT FROM vakpa WHERE kunde = …
SELECT FROM vbak WHERE vbeln = vakpa-vbeln.

Search order items for material number (field VBAP-MATNR)
To search for sales order line for particular material select from table VAPMA first and then go to VBAP table for more information.

IncorrectSELECT FROM vbap WHERE matnr = …
CorrectSELECT FROM vapma WHERE matnr = …

SELECT FROM vbap WHERE vbeln = vapma-vbeln
AND posnr = vapma-posnr

Use search help views defined for Sales Order
Other search helps for sales orders offer the matchcode tables and views M_VMVAx, x. = A, B, C, … M; for example search for purchase order number of the customer, description and so on.

View NameSearch Fields
M_VMVAACustomer PO number
M_VMVAEPartner number (KUNNR, LIFNR, or PERNR)
M_VMVALSales Org, Sold-to party
M_VMVAOSold-to party

2. Accesses to deliveries (tables LIKP, LIPS)

Search for deliveries with customer number (field LIKP-KUNNR)

 

IncorrectSELECT FROM likp WHERE kunnr = …
CorrectSELECT FROM vlkpa WHERE kunde = …

SELECT FROM likp WHERE vbeln = vlkpa-vbeln.

Search for delivery items with material number (field LIKP-MATNR)

 

IncorrectSELECT FROM lips WHERE matnr = …
CorrectSELECT FROM vlpma WHERE matnr = …

SELECT FROM lips WHERE vbeln = vlpma-vbeln
AND posnr = vlpma-posnr

Search for deliveries with sales order number (preceding document, field LIPS-VGBEL)

 

IncorrectSELECT FROM lips WHERE vgbel = …
CorrectSELECT FROM vbfa WHERE VBELV = … and VBTYP_N = ‘J’

SELECT FROM lips WHERE vbeln = vbfa-vbeln
AND posnr = vbfa-posnn

Use search help views defined for Delivery
Other search helps for deliveries offer matchcode tables and views M_VMVLx, x. = A, B, C, … M; for example search for goods issue date, picking date, transportation planning date and so on.

3. Accesses to invoices (tables VBRK, VBRP)

Search for invoices with customer number (“payer”) (field VBRK-KUNRG)

 

IncorrectSELECT FROM vbrk WHERE kunrg = …
CorrectSELECT FROM vrkpa WHERE kunde = …

SELECT FROM vbrk WHERE vbeln = vrkpa-vbeln

Search for invoice items with material number (field VBRP-MATNR)

 

IncorrectSELECT FROM vbrp WHERE matnr = …
CorrectSELECT FROM vrpma WHERE matnr = …

SELECT FROM vbrp WHERE vbeln = vrpma-vbeln
AND posnr = vrpma-posnr

Search for invoices with delivery number (preceding document, field VBRP-VGBEL)

 

IncorrectSELECT FROM vbrp WHERE vgbel = …
CorrectSELECT FROM vbfa WHERE vbtyp_n = ‘M’ AND vbelv = …
SELECT FROM vbrp WHERE vbeln = vbfa-vbeln
AND posnr = vbfa-posnn

Search for invoices with order number (preceding document, field VBRP-AUBEL)

 

IncorrectSELECT FROM vbrp WHERE aubel = …
CorrectSELECT FROM vbfa WHERE vbtyp_n = ‘M’ AND vbelv = …
SELECT FROM vbrp WHERE vbeln = vbfa-vbeln
AND posnr = vbfa-posnn

4. Other accesses in SD

Document flow
In table VBFA only the preceeding document is used to search for the subsequent document (for example, delivery for order). Searching the other way makes no sense with this table since the preceding documents (for example, order for delivery) are stored directly in the document tables. Thus reading in table VBFA is a one-way street.

 

IncorrectSELECT vbelv FROM vbfa WHERE vbeln …
CorrectSELECT vgbel FROM lips WHERE vbeln = …;
or
SELECT vgbel FROM vbrp WHERE vbeln = …;
or
SELECT aubel FROM vbrp WHERE vbeln = …

Search for shipping unit item with delivery

 

IncorrectSELECT FROM vepo WHERE vbtyp = ‘J’ AND vbeln = i_lips-vbeln
CorrectSELECT FROM vbfa WHERE vbtyp_n = ‘X’
AND vbelv = i_lips-vbeln
SELECT FROM vepo WHERE venum = vbfa-vbeln

Link to SAP Note 185530

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值