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

multiple lines not coming

Former Member
0 Likes
411

Hi,

Can any help me in the issue i am facing. For F.27 transaction code some changes I am doing for the script of correspondence SAP06. I have written a perform statement to get both open & cleared items in one internal table & i want to cummulate the same document number which was not given in the standard.

I pasting the perform statement what i have written & calling the same in the form. But only 1 line item is coming where there are 28 lines in the database. kindly correct my logic to get the correct out put.

FORM NEWSAP06 TABLES IN_TAB STRUCTURE ITCSY

OUT_TAB STRUCTURE ITCSY.

DATA : BEGIN OF IBSAD OCCURS 0,

BELNR LIKE BSAD-BELNR,

BLART LIKE BSAD-BLART,

BLDAT LIKE BSAD-BLDAT,

XBLNR LIKE BSAD-XBLNR,

SHKZG LIKE BSAD-SHKZG,

DMBTR LIKE BSAD-DMBTR,

WAERS LIKE BSAD-WAERS,

END OF IBSAD.

DATA : BEGIN OF IBSID OCCURS 0,

BELNR LIKE BSID-BELNR,

BLART LIKE BSID-BLART,

BLDAT LIKE BSID-BLDAT,

XBLNR LIKE BSID-XBLNR,

SHKZG LIKE BSID-SHKZG,

DMBTR LIKE BSID-DMBTR,

WAERS LIKE BSID-WAERS,

END OF IBSID.

DATA : BEGIN OF ITAB OCCURS 0,

BELNR LIKE BSID-BELNR,

BLART LIKE BSID-BLART,

BLDAT LIKE BSID-BLDAT,

XBLNR LIKE BSID-XBLNR,

SHKZG LIKE BSID-SHKZG,

DMBTR LIKE BSID-DMBTR,

WAERS LIKE BSID-WAERS,

LTEXT LIKE T003T-LTEXT,

END OF ITAB.

DATA : ITAB1 LIKE ITAB OCCURS 0 WITH HEADER LINE.

DATA : WDMBTR LIKE BSID-DMBTR.

DATA : MBELNR LIKE BSAD-BELNR,

MBLART LIKE BSAD-BLART,

MBLDAT LIKE BSAD-BLDAT,

MXBLNR LIKE BSAD-XBLNR,

MDMBTR LIKE BSAD-DMBTR,

MLTEXT LIKE T003T-LTEXT,

MWAERS LIKE BSAD-WAERS,

MKUNNR LIKE KNA1-KUNNR,

MBUKRS LIKE BSAD-BUKRS.

READ TABLE IN_TAB WITH KEY NAME = 'BKORM-KONTO'.

READ TABLE IN_TAB WITH KEY NAME = 'DKADR-KONTO'.

IF SY-SUBRC = 4.

READ TABLE IN_TAB WITH KEY NAME = 'F150D-KTONR'.

ENDIF.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = IN_TAB-VALUE

IMPORTING

OUTPUT = MKUNNR.

READ TABLE IN_TAB WITH KEY NAME = 'RBUKRS-LOW'.

IF SY-SUBRC = 4.

READ TABLE IN_TAB WITH KEY NAME = 'BSAD-BUKRS'.

ENDIF.

MBUKRS = IN_TAB-VALUE.

SELECT BELNR BLART BLDAT XBLNR SHKZG DMBTR WAERS

FROM BSAD

INTO CORRESPONDING FIELDS OF TABLE IBSAD

WHERE KUNNR = MKUNNR

AND BUKRS = MBUKRS

AND ( BLART = 'DG' OR BLART = 'DR' OR BLART = 'DZ' OR BLART = 'RV' ).

SORT IBSAD BY BELNR.

LOOP AT IBSAD.

IF IBSAD-SHKZG = 'H'.

IBSAD-DMBTR = IBSAD-DMBTR * -1.

ELSEIF IBSAD-SHKZG = 'S'.

IBSAD-DMBTR = IBSAD-DMBTR.

ENDIF.

MODIFY IBSAD.

ENDLOOP.

LOOP AT IBSAD.

ITAB = IBSAD.

APPEND ITAB.

ENDLOOP.

SELECT BELNR BLART BLDAT XBLNR SHKZG DMBTR WAERS

FROM BSID

INTO CORRESPONDING FIELDS OF TABLE IBSID

WHERE KUNNR = MKUNNR

AND BUKRS = MBUKRS

AND ( BLART = 'DG' OR BLART = 'DR' OR BLART = 'DZ' OR BLART = 'RV' ).

SORT IBSID BY BELNR.

LOOP AT IBSID.

IF IBSID-SHKZG = 'H'.

IBSID-DMBTR = IBSID-DMBTR * -1.

ELSEIF IBSID-SHKZG = 'S'.

IBSID-DMBTR = IBSID-DMBTR.

ENDIF.

MODIFY IBSID.

ENDLOOP.

LOOP AT IBSID.

ITAB = IBSID.

APPEND ITAB.

ENDLOOP.

LOOP AT ITAB.

SELECT SINGLE LTEXT INTO ITAB-LTEXT

FROM T003T

WHERE BLART = ITAB-BLART

AND SPRAS = 'EN'.

MODIFY ITAB.

ENDLOOP.

SORT ITAB BY BELNR.

ITAB1[] = ITAB[].

REFRESH ITAB.

CLEAR ITAB.

LOOP AT ITAB1.

ITAB = ITAB1.

AT END OF BELNR.

SUM.

WDMBTR = ITAB1-DMBTR.

ITAB-DMBTR = WDMBTR.

APPEND ITAB.

ENDAT.

ENDLOOP. till here i got all the open & cleared line items with same doc no added

SORT ITAB BY BLDAT.

LOOP AT ITAB. in this loop i am getting only last line item in the form print preview

LOOP AT OUT_TAB.

IF OUT_TAB-NAME = 'MBLDAT'.

OUT_TAB-VALUE = ITAB-BLDAT.

ELSEIF OUT_TAB-NAME = 'MLTEXT'.

OUT_TAB-VALUE = ITAB-LTEXT.

ELSEIF OUT_TAB-NAME = 'MBELNR'.

OUT_TAB-VALUE = ITAB-BELNR.

ELSEIF OUT_TAB-NAME = 'MXBLNR'.

OUT_TAB-VALUE = ITAB-XBLNR.

ELSEIF OUT_TAB-NAME = 'MWAERS'.

OUT_TAB-VALUE = ITAB-WAERS.

ELSEIF OUT_TAB-NAME = 'MDMBTR'.

OUT_TAB-VALUE = ITAB-DMBTR.

ENDIF.

MODIFY OUT_TAB.

ENDLOOP.

ENDLOOP.

kindly give a solution

regards,

ram

1 REPLY 1
Read only

Former Member
0 Likes
340

Hi Ram,

Get open items from BSID and Cleared items from BSAD tables.Get details like customer no, acc no etc into one internal table.

loop the internal table and inside that use the below BAPI

CALL FUNCTION 'BAPI_AR_ACC_GETOPENITEMS'

EXPORTING

COMPANYCODE = COMPANYCODE

CUSTOMER = CUSTOMER

KEYDATE = KEYDATE

  • NOTEDITEMS = ' '

  • SECINDEX = ' '

  • IMPORTING

  • RETURN =

TABLES

LINEITEMS = IT_BAPI3007_2

Regards,

Sanil