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

logic needed - Pls help

Former Member
0 Likes
376

Hi

The following logic is not working. I need to extract all data in to LT_LIPOV using invoice No.

Pls help me

FORM GET_VBRP_DATA.

SELECT * INTO CORRESPONDING FIELDS OF TABLE LT_VBRP

FROM VBRP WHERE VBELN IN S_INVNO.

ENDFORM. " get_vbrp_data

************************************************************************

FORM GET_ASN_DATA_INVNO.

SORT LT_VBRP BY VGBEL.

*Read in ASN

SELECT VBELN VERUR BOLNR ERDAT ERNAM

FROM LIKP INTO TABLE IT_LIKP

FOR ALL ENTRIES IN LT_VBRP

WHERE BOLNR = LT_VBRP-VGBEL.

*Read in ASN details

IF IT_LIKP[] IS NOT INITIAL.

SELECT VBELN POSNR MATNR ERDAT LFIMG ERNAM WERKS VGBEL VGPOS FROM LIPS INTO

TABLE IT_LIPS

FOR ALL ENTRIES IN IT_LIKP

WHERE VBELN = IT_LIKP-VBELN.

ELSE. "No ASN records found for the invoice

CLEAR LT_REP-VBELN.

CLEAR LT_REP-LFDAT.

CLEAR LT_REP-VERUR.

CLEAR LT_REP-BOLNR.

LT_REP-KOMAU = IT_LIPS-KOMAU. "Inv no

LV_MESSAGE = TEXT-504.

PERFORM CREATE_REPORT_RECORD_LIN01.

LT_REP-LINE_COLOUR = 'C610'. " red Intensified

ENDIF.

LOOP AT LT_VBRP. "Read invoice with Delivery header records

LT_LIPOV-KOMAU = LT_VBRP-VBELN.

READ TABLE IT_LIKP WITH KEY BOLNR = LT_VBRP-VGBEL BINARY SEARCH.

IF SY-SUBRC = 0.

LT_LIPOV-VBELN = IT_LIKP-VBELN.

LT_LIPOV-BOLNR = IT_LIKP-BOLNR.

LT_LIPOV-LDDAT = IT_LIKP-ERDAT.

LT_LIPOV-ERNAM = IT_LIKP-ERNAM.

MODIFY LT_LIPOV.

ENDIF.

  • CLEAR : LT_VBRP-VGBEL.

ENDLOOP. "End reading invoice

LOOP AT IT_LIPS. "Combine header records and details records to internal table

READ TABLE LT_LIPOV WITH KEY VBELN = IT_LIPS-VBELN BINARY SEARCH.

IF SY-SUBRC = 0.

LT_LIPOV1-VBELN = IT_LIPS-VBELN.

LT_LIPOV1-POSNR = IT_LIPS-POSNR.

LT_LIPOV1-MATNR = IT_LIPS-MATNR.

LT_LIPOV1-LDDAT = IT_LIPS-ERDAT.

LT_LIPOV1-LFIMG = IT_LIPS-LFIMG.

LT_LIPOV1-ERNAM = IT_LIPS-ERNAM.

LT_LIPOV1-WERKS = IT_LIPS-WERKS.

LT_LIPOV1-VGBEL = IT_LIPS-VGBEL.

LT_LIPOV1-VGPOS = IT_LIPS-VGPOS.

LT_LIPOV1-BOLNR = LT_LIPOV-BOLNR.

APPEND LT_LIPOV1.

CLEAR LT_LIPOV1.

ENDIF.

CLEAR : IT_LIPS-VBELN.

ENDLOOP.

LOOP AT LT_LIPOV1. "move records back to LT_LIPOV for further verification

REFRESH LT_LIPOV.

MOVE-CORRESPONDING LT_LIPOV1 TO LT_LIPOV.

APPEND LT_LIPOV.

ENDLOOP.

APPEND LT_REP.

CLEAR LT_LIPOV.

CLEAR LT_REP.

ENDFORM. " get_asn_data_invo

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
328

Hi,

Check the code below:

FORM GET_VBRP_DATA.

SELECT * INTO CORRESPONDING FIELDS OF TABLE LT_VBRP

FROM VBRP WHERE VBELN IN S_INVNO.

ENDFORM. " get_vbrp_data

************************************************************************

FORM GET_ASN_DATA_INVNO.

SORT LT_VBRP BY VGBEL.

IF NOT LT_VBRP IS INITIAL.

*Read in ASN

SELECT VBELN VERUR BOLNR ERDAT ERNAM

FROM LIKP INTO TABLE IT_LIKP

FOR ALL ENTRIES IN LT_VBRP

WHERE BOLNR = LT_VBRP-VGBEL.

ENDIF.

*Read in ASN details

IF IT_LIKP[] IS NOT INITIAL.

SELECT VBELN POSNR MATNR ERDAT LFIMG ERNAM WERKS VGBEL VGPOS FROM LIPS INTO

TABLE IT_LIPS

FOR ALL ENTRIES IN IT_LIKP

WHERE VBELN = IT_LIKP-VBELN.

ELSE. "No ASN records found for the invoice

CLEAR LT_REP-VBELN.

CLEAR LT_REP-LFDAT.

CLEAR LT_REP-VERUR.

CLEAR LT_REP-BOLNR.

LT_REP-KOMAU = IT_LIPS-KOMAU. "Inv no

LV_MESSAGE = TEXT-504.

PERFORM CREATE_REPORT_RECORD_LIN01.

LT_REP-LINE_COLOUR = 'C610'. " red Intensified

ENDIF.

LOOP AT LT_VBRP. "Read invoice with Delivery header records

LT_LIPOV-KOMAU = LT_VBRP-VBELN.

READ TABLE IT_LIKP WITH KEY BOLNR = LT_VBRP-VGBEL BINARY SEARCH.

IF SY-SUBRC = 0.

LT_LIPOV-VBELN = IT_LIKP-VBELN.

LT_LIPOV-BOLNR = IT_LIKP-BOLNR.

LT_LIPOV-LDDAT = IT_LIKP-ERDAT.

LT_LIPOV-ERNAM = IT_LIKP-ERNAM.

MODIFY LT_LIPOV.

ENDIF.

CLEAR : LT_VBRP-VGBEL.

ENDLOOP. "End reading invoice

LOOP AT IT_LIPS. "Combine header records and details records to internal table

READ TABLE LT_LIPOV WITH KEY VBELN = IT_LIPS-VBELN BINARY SEARCH.

IF SY-SUBRC = 0.

LT_LIPOV1-VBELN = IT_LIPS-VBELN.

LT_LIPOV1-POSNR = IT_LIPS-POSNR.

LT_LIPOV1-MATNR = IT_LIPS-MATNR.

LT_LIPOV1-LDDAT = IT_LIPS-ERDAT.

LT_LIPOV1-LFIMG = IT_LIPS-LFIMG.

LT_LIPOV1-ERNAM = IT_LIPS-ERNAM.

LT_LIPOV1-WERKS = IT_LIPS-WERKS.

LT_LIPOV1-VGBEL = IT_LIPS-VGBEL.

LT_LIPOV1-VGPOS = IT_LIPS-VGPOS.

LT_LIPOV1-BOLNR = LT_LIPOV-BOLNR.

APPEND LT_LIPOV1.

*CLEAR LT_LIPOV1."Remove This

ENDIF.

CLEAR : IT_LIPS-VBELN.

ENDLOOP.

LOOP AT LT_LIPOV1. "move records back to LT_LIPOV for further verification

REFRESH LT_LIPOV.

MOVE-CORRESPONDING LT_LIPOV1 TO LT_LIPOV.

APPEND LT_LIPOV.

ENDLOOP.

APPEND LT_REP.

*CLEAR LT_LIPOV. "Remove This

CLEAR LT_REP.

ENDFORM. " get_asn_data_invo

Regards

Kannaiah

1 REPLY 1
Read only

Former Member
0 Likes
329

Hi,

Check the code below:

FORM GET_VBRP_DATA.

SELECT * INTO CORRESPONDING FIELDS OF TABLE LT_VBRP

FROM VBRP WHERE VBELN IN S_INVNO.

ENDFORM. " get_vbrp_data

************************************************************************

FORM GET_ASN_DATA_INVNO.

SORT LT_VBRP BY VGBEL.

IF NOT LT_VBRP IS INITIAL.

*Read in ASN

SELECT VBELN VERUR BOLNR ERDAT ERNAM

FROM LIKP INTO TABLE IT_LIKP

FOR ALL ENTRIES IN LT_VBRP

WHERE BOLNR = LT_VBRP-VGBEL.

ENDIF.

*Read in ASN details

IF IT_LIKP[] IS NOT INITIAL.

SELECT VBELN POSNR MATNR ERDAT LFIMG ERNAM WERKS VGBEL VGPOS FROM LIPS INTO

TABLE IT_LIPS

FOR ALL ENTRIES IN IT_LIKP

WHERE VBELN = IT_LIKP-VBELN.

ELSE. "No ASN records found for the invoice

CLEAR LT_REP-VBELN.

CLEAR LT_REP-LFDAT.

CLEAR LT_REP-VERUR.

CLEAR LT_REP-BOLNR.

LT_REP-KOMAU = IT_LIPS-KOMAU. "Inv no

LV_MESSAGE = TEXT-504.

PERFORM CREATE_REPORT_RECORD_LIN01.

LT_REP-LINE_COLOUR = 'C610'. " red Intensified

ENDIF.

LOOP AT LT_VBRP. "Read invoice with Delivery header records

LT_LIPOV-KOMAU = LT_VBRP-VBELN.

READ TABLE IT_LIKP WITH KEY BOLNR = LT_VBRP-VGBEL BINARY SEARCH.

IF SY-SUBRC = 0.

LT_LIPOV-VBELN = IT_LIKP-VBELN.

LT_LIPOV-BOLNR = IT_LIKP-BOLNR.

LT_LIPOV-LDDAT = IT_LIKP-ERDAT.

LT_LIPOV-ERNAM = IT_LIKP-ERNAM.

MODIFY LT_LIPOV.

ENDIF.

CLEAR : LT_VBRP-VGBEL.

ENDLOOP. "End reading invoice

LOOP AT IT_LIPS. "Combine header records and details records to internal table

READ TABLE LT_LIPOV WITH KEY VBELN = IT_LIPS-VBELN BINARY SEARCH.

IF SY-SUBRC = 0.

LT_LIPOV1-VBELN = IT_LIPS-VBELN.

LT_LIPOV1-POSNR = IT_LIPS-POSNR.

LT_LIPOV1-MATNR = IT_LIPS-MATNR.

LT_LIPOV1-LDDAT = IT_LIPS-ERDAT.

LT_LIPOV1-LFIMG = IT_LIPS-LFIMG.

LT_LIPOV1-ERNAM = IT_LIPS-ERNAM.

LT_LIPOV1-WERKS = IT_LIPS-WERKS.

LT_LIPOV1-VGBEL = IT_LIPS-VGBEL.

LT_LIPOV1-VGPOS = IT_LIPS-VGPOS.

LT_LIPOV1-BOLNR = LT_LIPOV-BOLNR.

APPEND LT_LIPOV1.

*CLEAR LT_LIPOV1."Remove This

ENDIF.

CLEAR : IT_LIPS-VBELN.

ENDLOOP.

LOOP AT LT_LIPOV1. "move records back to LT_LIPOV for further verification

REFRESH LT_LIPOV.

MOVE-CORRESPONDING LT_LIPOV1 TO LT_LIPOV.

APPEND LT_LIPOV.

ENDLOOP.

APPEND LT_REP.

*CLEAR LT_LIPOV. "Remove This

CLEAR LT_REP.

ENDFORM. " get_asn_data_invo

Regards

Kannaiah