Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Open Order

Former Member
0 Likes
743

hi experts i want to know the

Open Sales Order details for the combination of

company code and sales organization.

how to find out

the related tables and the fields to be used

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
619

hi mallika,

Standard SAP program SDEWUORD has logic to find open sales orders.

or

check this code for open sales order(basic list) + open items (secondary list).

check the status as A--not yet processed..

B--partially processed

C--completely processed

hope this helps u out in getting the functionality.

u can take the header data from vbakuk ( vbak + vbuk )

and items from vbap as shown ..

fetching the data from vbakuk minimizes joins on vbak and vbuk.

execute the below code.

REPORT ZEX2 MESSAGE-ID arc NO STANDARD PAGE HEADING.

Tables :kna1,vbak.

SELECT-OPTIONS : so_vkorg FOR vbak-vkorg OBLIGATORY,

so_vtweg FOR vbak-vtweg OBLIGATORY,

so_spart FOR vbak-spart,

so_kunnr FOR kna1-kunnr.

DATA : BEGIN OF sales_open OCCURS 0 ,

vbeln LIKE vbak-vbeln,

auart LIKE vbak-auart,

kunnr LIKE kna1-kunnr,

bstnk LIKE vbak-bstnk,

lfstk LIKE vbuk-lfstk,

fkstk LIKE vbuk-fkstk,

gbstk LIKE vbuk-gbstk,

END OF sales_open.

DATA : BEGIN OF itm_sales OCCURS 0,

vbeln LIKE vbap-vbeln,

posnr LIKE vbap-posnr,

matnr LIKE vbap-matnr,

lfsta LIKE vbup-lfsta,

lfgsa LIKE vbup-lfgsa,

fksta LIKE vbup-fksta,

fksaa LIKE vbup-fksaa,

gbsta LIKE vbup-gbsta,

END OF itm_sales.

***

DATA : l_kunnr LIKE kna1-kunnr,

l_vkorg LIKE vbak-vkorg,

l_vtweg LIKE vbak-vtweg,

l_spart LIKE vbak-spart.

DATA: v_statusl(20) TYPE c,

v_statusb(20) TYPE c,

v_statusf(20) TYPE c,

v_statusg(20) TYPE c,

v_status(20) TYPE c,

v_field(1) TYPE c.

**Selection Screen Validations.

AT SELECTION-SCREEN.

PERFORM validations.

&----


*& Form Validations

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM validations.

**Customer

IF NOT so_kunnr[] IS INITIAL.

SELECT SINGLE kunnr INTO l_kunnr

FROM kna1

WHERE kunnr IN so_kunnr.

IF sy-subrc NE 0.

MESSAGE e002 WITH text-005.

ENDIF.

ENDIF.

**Sales Organization

IF NOT so_vkorg[] IS INITIAL.

SELECT SINGLE vkorg INTO l_vkorg

FROM tvko

WHERE vkorg IN so_vkorg.

IF sy-subrc NE 0.

MESSAGE e003 WITH text-006.

ENDIF.

ENDIF.

**Distribution Channel

IF NOT so_vtweg[] IS INITIAL.

SELECT SINGLE vtweg INTO l_vtweg

FROM tvkov

WHERE vkorg IN so_vkorg

AND vtweg IN so_vtweg.

IF sy-subrc NE 0.

MESSAGE e004 WITH text-007.

ENDIF.

ENDIF.

**Division

IF NOT so_spart[] IS INITIAL.

SELECT SINGLE spart INTO l_spart

FROM tvta

WHERE vkorg IN so_vkorg

AND vtweg IN so_vtweg

AND spart IN so_spart.

IF sy-subrc NE 0.

MESSAGE e005 WITH text-008.

ENDIF.

ENDIF.

ENDFORM. " Validations

Top-of-page.

PERFORM sales_top_of_page.

Start-of-selection.

PERFORM sales_sel.

&----


*& Form sales_sel

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sales_sel.

SELECT vbeln auart kunnr bstnk

lfstk fkstk gbstk

INTO TABLE sales_open

FROM vbakuk

WHERE vkorg IN so_vkorg

AND vtweg IN so_vtweg

AND spart IN so_spart

AND kunnr IN so_kunnr

AND gbstk NE 'C'.

LOOP AT sales_open.

WRITE:/4 sy-vline,

5 sales_open-vbeln HOTSPOT ON COLOR 2 INTENSIFIED OFF,

16 sy-vline,

17 sales_open-auart COLOR 2 INTENSIFIED OFF,

27 sy-vline,

28 sales_open-kunnr COLOR 2 INTENSIFIED OFF,

40 sy-vline,

41 sales_open-bstnk COLOR 2 INTENSIFIED OFF,

55 sy-vline,

56 sales_open-lfstk,

76 sy-vline,

77 sales_open-fkstk,

96 sy-vline,

97 sales_open-gbstk ,

117 sy-vline.

HIDE sales_open-vbeln .

ENDLOOP.

ENDFORM. " sales_sel

&----


*& Form sales_top_of_page

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sales_top_of_page.

WRITE:/4 sy-uline(114),

50 'OPEN SALES ORDERS' COLOR 7 INTENSIFIED ON .

WRITE: /4 sy-vline,

5 'SalesOrder' COLOR 1 ,

16 sy-vline,

17 'OrderType' COLOR 1,

27 sy-vline,

28 'Customer' COLOR 1,

40 sy-vline,

41 'PoNumber' COLOR 1,

55 sy-vline,

56 'Delivery Status' COLOR 1,

76 sy-vline,

77 'Billing Status' COLOR 1,

96 sy-vline,

97 'Processing Status' COLOR 1,

117 sy-vline .

WRITE:/4 sy-uline(114).

ENDFORM. " sales_top_of_page

AT LINE-SELECTION.

SELECT a~vbeln

a~posnr

a~matnr

  • a~kwmeng

b~lfsta

b~lfgsa

b~fksta

b~fksaa

b~gbsta

INTO TABLE itm_sales

FROM vbap AS a JOIN vbup AS b

ON avbeln EQ bvbeln

AND aposnr EQ bposnr

AND b~gbsta NE 'C'

WHERE a~vbeln EQ sales_open-vbeln.

IF NOT sales_open IS INITIAL.

LOOP AT itm_sales.

WRITE:/5 itm_sales-vbeln,

itm_sales-posnr,

itm_sales-matnr,

itm_sales-lfsta,

itm_sales-lfgsa,

itm_sales-fksta,

itm_sales-fksaa,

itm_sales-gbsta.

ENDLOOP.

ENDIF.

if you find it useful mark the points

~~Guduri

3 REPLIES 3
Read only

ferry_lianto
Active Contributor
0 Likes
619

Hi,

You can check these tables for open sales orders.

VBAK

VBUK


select a~vbeln 
into table i_doctab
from vbak as a inner join vbuk as b on a~vbeln = b~vbeln
where a~vbeln in s_vbeln   and
          a~auart in s_auart   and
          a~vkorg in s_vkorg   and
          a~vdatu in s_vdatu   and
          a~kunnr in s_kunnr   and
        ( b~lfstk = 'A' or
          b~lfstk = 'B' ) and
        ( b~abstk = 'A' or
          b~abstk = 'B' ).

Regards,

Ferry Lianto

Read only

Former Member
0 Likes
619

Hi

Open sales order means , if you ordered 20 qty then if that 10 items are delivered

and other 10 are yet to be delivered.

means if the Order qty = Delivered qty that order is closed and if it is not equal then it is open order.

So take the Sales orders data from VBAK, and VBAP tables with the item Qty (VBAP-KWMENG).

then fetch the related delivery details from LIKP and LIPS using the link LIPS-VGBEL = VBAP-VBELN and LIPS-VGPOS = VBAP-POSNR along with the Delivery qty (LFIMG)

for each Order item equate the Order qty and Delivery qty( KWMENG and LFIMG)

if they are not equal those are all OPEN ORDERS.

Reward points if useful

regards

Anji

Read only

Former Member
0 Likes
620

hi mallika,

Standard SAP program SDEWUORD has logic to find open sales orders.

or

check this code for open sales order(basic list) + open items (secondary list).

check the status as A--not yet processed..

B--partially processed

C--completely processed

hope this helps u out in getting the functionality.

u can take the header data from vbakuk ( vbak + vbuk )

and items from vbap as shown ..

fetching the data from vbakuk minimizes joins on vbak and vbuk.

execute the below code.

REPORT ZEX2 MESSAGE-ID arc NO STANDARD PAGE HEADING.

Tables :kna1,vbak.

SELECT-OPTIONS : so_vkorg FOR vbak-vkorg OBLIGATORY,

so_vtweg FOR vbak-vtweg OBLIGATORY,

so_spart FOR vbak-spart,

so_kunnr FOR kna1-kunnr.

DATA : BEGIN OF sales_open OCCURS 0 ,

vbeln LIKE vbak-vbeln,

auart LIKE vbak-auart,

kunnr LIKE kna1-kunnr,

bstnk LIKE vbak-bstnk,

lfstk LIKE vbuk-lfstk,

fkstk LIKE vbuk-fkstk,

gbstk LIKE vbuk-gbstk,

END OF sales_open.

DATA : BEGIN OF itm_sales OCCURS 0,

vbeln LIKE vbap-vbeln,

posnr LIKE vbap-posnr,

matnr LIKE vbap-matnr,

lfsta LIKE vbup-lfsta,

lfgsa LIKE vbup-lfgsa,

fksta LIKE vbup-fksta,

fksaa LIKE vbup-fksaa,

gbsta LIKE vbup-gbsta,

END OF itm_sales.

***

DATA : l_kunnr LIKE kna1-kunnr,

l_vkorg LIKE vbak-vkorg,

l_vtweg LIKE vbak-vtweg,

l_spart LIKE vbak-spart.

DATA: v_statusl(20) TYPE c,

v_statusb(20) TYPE c,

v_statusf(20) TYPE c,

v_statusg(20) TYPE c,

v_status(20) TYPE c,

v_field(1) TYPE c.

**Selection Screen Validations.

AT SELECTION-SCREEN.

PERFORM validations.

&----


*& Form Validations

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM validations.

**Customer

IF NOT so_kunnr[] IS INITIAL.

SELECT SINGLE kunnr INTO l_kunnr

FROM kna1

WHERE kunnr IN so_kunnr.

IF sy-subrc NE 0.

MESSAGE e002 WITH text-005.

ENDIF.

ENDIF.

**Sales Organization

IF NOT so_vkorg[] IS INITIAL.

SELECT SINGLE vkorg INTO l_vkorg

FROM tvko

WHERE vkorg IN so_vkorg.

IF sy-subrc NE 0.

MESSAGE e003 WITH text-006.

ENDIF.

ENDIF.

**Distribution Channel

IF NOT so_vtweg[] IS INITIAL.

SELECT SINGLE vtweg INTO l_vtweg

FROM tvkov

WHERE vkorg IN so_vkorg

AND vtweg IN so_vtweg.

IF sy-subrc NE 0.

MESSAGE e004 WITH text-007.

ENDIF.

ENDIF.

**Division

IF NOT so_spart[] IS INITIAL.

SELECT SINGLE spart INTO l_spart

FROM tvta

WHERE vkorg IN so_vkorg

AND vtweg IN so_vtweg

AND spart IN so_spart.

IF sy-subrc NE 0.

MESSAGE e005 WITH text-008.

ENDIF.

ENDIF.

ENDFORM. " Validations

Top-of-page.

PERFORM sales_top_of_page.

Start-of-selection.

PERFORM sales_sel.

&----


*& Form sales_sel

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sales_sel.

SELECT vbeln auart kunnr bstnk

lfstk fkstk gbstk

INTO TABLE sales_open

FROM vbakuk

WHERE vkorg IN so_vkorg

AND vtweg IN so_vtweg

AND spart IN so_spart

AND kunnr IN so_kunnr

AND gbstk NE 'C'.

LOOP AT sales_open.

WRITE:/4 sy-vline,

5 sales_open-vbeln HOTSPOT ON COLOR 2 INTENSIFIED OFF,

16 sy-vline,

17 sales_open-auart COLOR 2 INTENSIFIED OFF,

27 sy-vline,

28 sales_open-kunnr COLOR 2 INTENSIFIED OFF,

40 sy-vline,

41 sales_open-bstnk COLOR 2 INTENSIFIED OFF,

55 sy-vline,

56 sales_open-lfstk,

76 sy-vline,

77 sales_open-fkstk,

96 sy-vline,

97 sales_open-gbstk ,

117 sy-vline.

HIDE sales_open-vbeln .

ENDLOOP.

ENDFORM. " sales_sel

&----


*& Form sales_top_of_page

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sales_top_of_page.

WRITE:/4 sy-uline(114),

50 'OPEN SALES ORDERS' COLOR 7 INTENSIFIED ON .

WRITE: /4 sy-vline,

5 'SalesOrder' COLOR 1 ,

16 sy-vline,

17 'OrderType' COLOR 1,

27 sy-vline,

28 'Customer' COLOR 1,

40 sy-vline,

41 'PoNumber' COLOR 1,

55 sy-vline,

56 'Delivery Status' COLOR 1,

76 sy-vline,

77 'Billing Status' COLOR 1,

96 sy-vline,

97 'Processing Status' COLOR 1,

117 sy-vline .

WRITE:/4 sy-uline(114).

ENDFORM. " sales_top_of_page

AT LINE-SELECTION.

SELECT a~vbeln

a~posnr

a~matnr

  • a~kwmeng

b~lfsta

b~lfgsa

b~fksta

b~fksaa

b~gbsta

INTO TABLE itm_sales

FROM vbap AS a JOIN vbup AS b

ON avbeln EQ bvbeln

AND aposnr EQ bposnr

AND b~gbsta NE 'C'

WHERE a~vbeln EQ sales_open-vbeln.

IF NOT sales_open IS INITIAL.

LOOP AT itm_sales.

WRITE:/5 itm_sales-vbeln,

itm_sales-posnr,

itm_sales-matnr,

itm_sales-lfsta,

itm_sales-lfgsa,

itm_sales-fksta,

itm_sales-fksaa,

itm_sales-gbsta.

ENDLOOP.

ENDIF.

if you find it useful mark the points

~~Guduri