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

Internal Tables.

Former Member
0 Likes
849

Hi,

I am using six internal tables with different fields in an report. Can anyone tell me the most efficient way of transfering data from those six internal tables to one internal table.

Thanks,

Amit.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
809

Hi Amit,

use this:

data : lv_index like sy-tabix.

loop at it_bkpf.

read table it_bseg with key

bukrs = it_bkpf-bukrs

gjahr = it_bkpf-gjahr

belnr = it_bkpf-belnr binary search.

if sy-subrc eq 0.

clear lv_index.

lv_index = sy-tabix.

loop at it_bseg from lv_index.

if it_bseg-bukrs = it_bkpf-bukrs and

it_bseg-gjahr = it_bkpf-gjahr and

it_bseg-belnr = it_bkpf-belnr.

endloop.

endloop.

keerthi

Hi,

I am using six internal tables with different fields in an report. Can anyone tell me the most efficient way of transfering data from those six internal tables to one internal table.

Thanks,

Amit.

5 REPLIES 5
Read only

SantoshKallem
Active Contributor
0 Likes
809

<b>for all entries</b> and <b> read table</b>

Read only

0 Likes
809

Hi,

Can you provide me an example?

Read only

Former Member
0 Likes
809

Hi,

You can use parallel processing techinque to move the values ..

Example

-


SORT ITAB2 BY VBELN.

LOOP AT ITAB1.

READ TABLE ITAB2 WITH KEY VBELN = ITAB2-VBELN.

IF SY-SUBRC = 0.

LV_TABIX = SY-TABIX.

LOOP AT ITAB2 FROM LV_TABIX.

  • EXIT CONDITION.

IF ITAB1-VBELN <> ITAB2-VBELN.

EXIT.

ENDIF.

ENDLOOP.

ENDIF.

ENDLOOP.

Thanks,

Naren

Read only

SantoshKallem
Active Contributor
0 Likes
809

REPORT ZLDLR012 MESSAGE-ID ZABAP LINE-SIZE 350.

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

  • PROGRAM ID : ZLDLR010 **

  • PROGRAM NAME : DELIVERY ATP AND ERROR REPORT **

  • DEVELOPMENT CLASS : ZSAGARIKA **

  • MESSAGE CLASS : ZLDL01 **

  • PROGRAM TYPE : EXECUTABLE **

  • DEVELOPMENT TYPE : REPORT **

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

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

  • THIS REPORT CHECKS IF THE ORDER AND DELIVERY QUANTITIES HAVE SAME UOM

*IF THEY ARE DIFFERENT COMPARE THE DELIVERY BASE UOM TO THE DELIVERY

*QUANTITY. THE UNITS ARE NOT EQUAL PEROFRM THE UOM CONVERSION AND

*COMPARE THE ACTUAL QUANTITY DELIVERED FROM THE DELIVERY TO THE

*CUMULATIVE CONFIRMED QUANTITY FROM THE CORRESPONDING SALES ORDER,IF

*THEY ARE NOT EQUAL THEN THIS RECORD APPERS ON THE REPORT .

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

DATA :V_OUT TYPE I.

TYPES :BEGIN OF ST_MAKT,

MATNR TYPE MAKT-MATNR, "MATERIAL NUMBER

MAKTX TYPE MAKT-MAKTX, "MATERIAL DESCRIPTION

SPRAS TYPE MAKT-SPRAS, "LANGUAGE KEY

END OF ST_MAKT.

TYPES :BEGIN OF ST_VBAK,

VBELN TYPE VBAK-VBELN, "SALES DOCUMNET

POSNR TYPE VBAP-POSNR, "SALES DOUCMENT ITEM

UMZIN TYPE VBAP-UMZIN, "FACTOR FOR CONVG SALESUNIT TO BASEUNIT

UMZIZ TYPE VBAP-UMZIZ,

KBMENG TYPE VBAP-KBMENG, "CUMULATIVE CONFIRMED QUANTITY IN SU

VRKME TYPE VBAP-VRKME, "VRKME

MEINS TYPE VBAP-MEINS, "BASIC UNIT OF MEASURE

KUNNR TYPE VBAK-KUNNR, "CUSTOMER NUMBER

AUART TYPE VBAK-AUART, "SALES DOCUMENT TYPE

END OF ST_VBAK.

TYPES :BEGIN OF ST_VBUK,

VBELN TYPE VBUK-VBELN, "SALES AND DISTRIBUTION DOCUMENT NUMBER

WBSTK TYPE VBUK-WBSTK, "TOTAL GOODS MOVEMENT STATUS

END OF ST_VBUK.

TYPES :BEGIN OF ST_KNA1,

KUNNR TYPE KNA1-KUNNR, "CUSTOMER NUMBER

NAME1 TYPE KNA1-NAME1, "NAME

END OF ST_KNA1.

TYPES: BEGIN OF ST_LIKP,

KUNNR TYPE LIKP-KUNNR, "SHIP-TO-PARTY

WADAT TYPE LIKP-WADAT, "PLANNED GOODS MOVEMENT STATE

AUTLF TYPE LIKP-AUTLF, "Complete delivery defined for each SO

LPRIO TYPE LIKP-LPRIO, "DELIVERY PRIORITY

VBELN TYPE LIPS-VBELN, "DELIVERY

ERDAT TYPE LIPS-ERDAT, "DATE ON WHICH THE RECORD WAS CREATED

ERZET TYPE LIPS-ERZET, "ENTRY TIME

WERKS TYPE LIPS-WERKS, "PLANT

MATNR TYPE LIPS-MATNR, "MATERIAL NUMBER

LFIMG TYPE LIPS-LFIMG, "ACTUAL QUANTITY DELIVERED

MEINS TYPE LIPS-MEINS, "BASE UNIT MEASURE

LGMNG TYPE LIPS-LGMNG, "Actual quantity delivered in

"stockkeeping units

VGBEL TYPE LIPS-VGBEL, "Document number of the reference

"document

VGPOS TYPE LIPS-VGPOS, "Item number of the reference item

VRKME TYPE LIPS-VRKME, "SALES UNIT

POSNR TYPE LIPS-POSNR, "DELIVERY ITEM

END OF ST_LIKP.

DATA: V_FIELD(25),

V_VALUE(10).

DATA : IT_MAKT TYPE STANDARD TABLE OF ST_MAKT WITH HEADER LINE.

DATA : IT_VBAK TYPE STANDARD TABLE OF ST_VBAK WITH HEADER LINE.

*DATA : IT_VBAP TYPE STANDARD TABLE OF ST_VBAP WITH HEADER LINE.

DATA : IT_VBUK TYPE STANDARD TABLE OF ST_VBUK WITH HEADER LINE.

DATA : IT_KNA1 TYPE STANDARD TABLE OF ST_KNA1 WITH HEADER LINE.

*DATA : IT_LIPS TYPE STANDARD TABLE OF ST_LIPS WITH HEADER LINE.

DATA : IT_LIKP TYPE STANDARD TABLE OF ST_LIKP WITH HEADER LINE.

DATA:BEGIN OF IT_FINAL OCCURS 0 ,

VBELN LIKE LIPS-VBELN,

VVBELN LIKE LIPS-VBELN,

ERDAT LIKE LIPS-ERDAT,

ERZET LIKE LIPS-ERZET,

WERKS LIKE LIPS-WERKS,

MATNR LIKE LIPS-MATNR,

LFIMG LIKE LIPS-LFIMG,

MEINS LIKE LIPS-MEINS,

LGMNG LIKE LIPS-LGMNG,

VGBEL LIKE LIPS-VGBEL,

VGPOS LIKE LIPS-VGPOS,

VRKME LIKE LIPS-VRKME,

KUNNR LIKE VBAK-KUNNR,

WADAT LIKE LIKP-WADAT,

AUTLF LIKE LIKP-AUTLF,

LPRIO LIKE LIKP-LPRIO,

POSNR LIKE LIPS-POSNR,

AUART LIKE VBAK-AUART,

WBSTK LIKE VBUK-WBSTK,

NAME1 LIKE KNA1-NAME1,

MAKTX LIKE MAKT-MAKTX,

KBMENG LIKE VBAP-KBMENG,

V_OUT TYPE I,

END OF IT_FINAL.

SELECTION-SCREEN :BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS: S_WERKS FOR IT_LIKP-WERKS,

S_ERDAT FOR IT_LIKP-ERDAT,

S_AUART FOR IT_VBAK-AUART,

S_LPRIO FOR IT_LIKP-LPRIO,

S_MATNR FOR IT_LIKP-MATNR,

S_ERZET FOR IT_LIKP-ERZET.

SELECTION-SCREEN :END OF BLOCK B1.

START-OF-SELECTION.

PERFORM IT_LIKP.

IF NOT IT_LIKP[] IS INITIAL.

PERFORM IT_VBAK.

ELSE.

stop.

ENDIF.

PERFORM CONVERT.

PERFORM IT_KNA1.

PERFORM IT_VBUK.

PERFORM IT_MAKT.

PERFORM GET_FINALDATA.

AT LINE-SELECTION.

GET CURSOR FIELD V_FIELD VALUE V_VALUE.

IF V_FIELD = 'IT_FINAL-VVBELN'.

SET PARAMETER ID 'VL' FIELD v_value.

CALL TRANSACTION 'VL03N'.

ELSE.

IF V_FIELD = 'IT_FINAL-VBELN'.

SET PARAMETER ID 'AUN' FIELD v_value.

CALL TRANSACTION 'VA03'.

ENDIF.

ENDIF.

STOP.

END-OF-SELECTION.

IF NOT IT_FINAL[] IS INITIAL.

PERFORM DISP_OUTPUT.

ELSE.

MESSAGE I201 WITH ' NO DATA EXIST FOR SELECTION CRITERIA'.

ENDIF.

&----


*& Form IT_LIKP

&----


FORM IT_LIKP.

SELECT LIKP~KUNNR

LIKP~WADAT

LIKP~AUTLF

LIKP~LPRIO

LIPS~VBELN

LIPS~ERDAT

LIPS~ERZET

LIPS~WERKS

LIPS~MATNR

LIPS~LFIMG

LIPS~MEINS

LIPS~LGMNG

LIPS~VGBEL

LIPS~VGPOS

LIPS~VRKME

INTO TABLE IT_LIKP

FROM LIKP JOIN LIPS ON LIKPVBELN = LIPSVBELN

WHERE LIPS~WERKS IN S_WERKS AND

LIPS~ERDAT IN S_ERDAT AND

LIPS~ERZET IN S_ERZET AND

LIKP~LPRIO IN S_LPRIO.

ENDFORM. " IT_LIKP

&----


*& Form IT_VBAK

&----


FORM IT_VBAK.

SELECT VBELN

POSNR

UMZIN

UMZIZ

KBMENG

VRKME

MEINS

  • KUNNR

  • aUART

INTO TABLE IT_VBAK

FROM VBAP.

  • FOR ALL ENTRIES IN IT_LIKP

  • WHERE VBELN = IT_LIKP-VGBEL AND

  • POSNR = IT_LIKP-POSNR.

ENDFORM. " IT_VBAK

&----


*& Form IT_VBUK

&----


FORM IT_VBUK.

SELECT VBELN

WBSTK

FROM VBUK

INTO TABLE IT_VBUK

FOR ALL ENTRIES IN IT_LIKP

WHERE VBELN = IT_LIKP-VBELN.

ENDFORM. " IT_VBUK

&----


*& Form IT_KNA1

&----


FORM IT_KNA1.

SELECT KUNNR

NAME1

FROM KNA1

INTO TABLE IT_KNA1

FOR ALL ENTRIES IN IT_VBAK

WHERE KUNNR = IT_VBAK-KUNNR.

ENDFORM. " IT_KNA1

&----


*& Form IT_MAKT

&----


FORM IT_MAKT.

SELECT MATNR

MAKTX

SPRAS

INTO TABLE IT_MAKT

FROM MAKT

FOR ALL ENTRIES IN IT_LIKP

WHERE MATNR = IT_LIKP-MATNR AND

SPRAS = SY-LANGU.

ENDFORM. " IT_MAKT

&----


*& Form GET_FINALDATA

&----


FORM GET_FINALDATA.

SORT IT_LIKP BY VBELN MATNR.

LOOP AT IT_LIKP.

READ TABLE IT_VBAK WITH KEY VBELN = IT_LIKP-VGBEL

POSNR = IT_LIKP-VGPOS.

IF SY-SUBRC = 0.

IT_FINAL-VGBEL = IT_LIKP-VBELn.

IT_FINAL-VVBELN = IT_LIKP-VBELN.

IT_FINAL-LPRIO = IT_LIKP-LPRIO.

IT_FINAL-ERDAT = IT_LIKP-ERDAT.

IT_FINAL-ERZET = IT_LIKP-ERZET.

IT_FINAL-WERKS = IT_LIKP-WERKS.

IT_FINAL-WADAT = IT_LIKP-WADAT.

IT_FINAL-WBSTK = IT_VBUK-WBSTK.

IT_FINAL-VBELN = IT_VBAK-VBELN.

IT_FINAL-AUART = IT_VBAK-AUART.

IT_FINAL-AUTLF = IT_LIKP-AUTLF.

IT_FINAL-KUNNR = IT_VBAK-KUNNR.

IT_FINAL-NAME1 = IT_KNA1-NAME1.

IT_FINAL-MATNR = IT_LIKP-MATNR.

IT_FINAL-MAKTX = IT_MAKT-MAKTX.

  • IT_FINAL-KBMENG = IT_VBAK-KBMENG.

  • IT_FINAL-LFIMG = IT_LIKP-LFIMG.

IT_FINAL-VRKME = IT_VBAK-VRKME.

IT_FINAL-V_OUT = V_OUT.

append it_final.

clear it_final.

ENDIF.

ENDLOOP.

ENDFORM. " GET_FINALDATA

&----


*& Form CONVERT

&----


FORM CONVERT.

LOOP AT IT_VBAK.

read table it_likp with key vgbel = it_vbak-vbeln

vgpos = it_vbak-posnr.

IF IT_LIKP-VRKME <> IT_VBAK-VRKME AND IT_LIKP-LFIMG <> IT_VBAK-KBMENG.

CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'

EXPORTING

INPUT = IT_VBAK-KBMENG

  • NO_TYPE_CHECK = 'X'

  • ROUND_SIGN = ' '

UNIT_IN = IT_VBAK-MEINS

UNIT_OUT = IT_LIKP-MEINS

  • IMPORTING

  • ADD_CONST =

  • DECIMALS =

  • DENOMINATOR =

  • NUMERATOR =

OUTPUT = V_OUT

EXCEPTIONS

CONVERSION_NOT_FOUND = 1

DIVISION_BY_ZERO = 2

INPUT_INVALID = 3

OUTPUT_INVALID = 4

OVERFLOW = 5

TYPE_INVALID = 6

UNITS_MISSING = 7

UNIT_IN_NOT_FOUND = 8

UNIT_OUT_NOT_FOUND = 9

OTHERS = 10.

if sy-subrc = 0.

if it_likp-lfimg <> v_out.

  • v_out populate it_final

endif.

endif.

endif.

ENDLOOP.

ENDFORM. " CONVERT

&----


*& Form DISP_OUTPUT

&----


FORM DISP_OUTPUT.

WRITE:/(15) 'Delivery No.',

(10) 'refernce docu',

(15) 'Del priority',

(15) 'Created On' ,

(15) 'Entry Time' ,

(15) 'Plant For Del' ,

(15) 'G-Moment Date' ,

(15) 'G-Moment Status',

(15) 'Sales Document',

(15) 'Document Type' ,

(15) 'Complete delivery' ,

(15) 'Sold-to party' ,

(15) 'Name' ,

(15) 'Material No' ,

(15) 'Material description' ,

  • IT_FINAL-KBMENG,

  • IT_FINAL-LFIMG ,

(15) 'Sales Unit' ,

(15) 'Qty difference'.

write:/ sy-uline.

SORT IT_FINAL BY VBELN KUNNR.

LOOP AT IT_FINAL.

WRITE: /(15) IT_FINAL-VVBELN color 2 HOTSPOT,

(10) IT_FINAL-VBELn ,

(15) IT_FINAL-LPRIO ,

(15) IT_FINAL-ERDAT ,

(15) IT_FINAL-ERZET ,

(15) IT_FINAL-WERKS ,

(15) IT_FINAL-WADAT ,

(15) IT_FINAL-WBSTK ,

(15) IT_FINAL-VBELN COLOR 3 HOTSPOT,

(15) IT_FINAL-AUART ,

(15) IT_FINAL-AUTLF ,

(15) IT_FINAL-KUNNR ,

(15) IT_FINAL-NAME1 ,

(15) IT_FINAL-MATNR ,

(15) IT_FINAL-MAKTX ,

  • IT_FINAL-KBMENG,

  • IT_FINAL-LFIMG ,

(15) IT_FINAL-VRKME ,

(15) IT_FINAL-V_OUT.

ENDLOOP.

ENDFORM. " DISP_OUTPUT

Read only

Former Member
0 Likes
810

Hi Amit,

use this:

data : lv_index like sy-tabix.

loop at it_bkpf.

read table it_bseg with key

bukrs = it_bkpf-bukrs

gjahr = it_bkpf-gjahr

belnr = it_bkpf-belnr binary search.

if sy-subrc eq 0.

clear lv_index.

lv_index = sy-tabix.

loop at it_bseg from lv_index.

if it_bseg-bukrs = it_bkpf-bukrs and

it_bseg-gjahr = it_bkpf-gjahr and

it_bseg-belnr = it_bkpf-belnr.

endloop.

endloop.

keerthi